# Hausdorff measure and metric (outer) measures #

In this file we define the d-dimensional Hausdorff measure on an (extended) metric space X and the Hausdorff dimension of a set in an (extended) metric space. Let μ d δ be the maximal outer measure such that μ d δ s ≤ (EMetric.diam s) ^ d for every set of diameter less than δ. Then the Hausdorff measure μH[d] s of s is defined as ⨆ δ > 0, μ d δ s. By Caratheodory theorem MeasureTheory.OuterMeasure.IsMetric.borel_le_caratheodory, this is a Borel measure on X.

The value of μH[d], d > 0, on a set s (measurable or not) is given by

μH[d] s = ⨆ (r : ℝ≥0∞) (hr : 0 < r), ⨅ (t : ℕ → Set X) (hts : s ⊆ ⋃ n, t n)
(ht : ∀ n, EMetric.diam (t n) ≤ r), ∑' n, EMetric.diam (t n) ^ d


For every set s for any d < d' we have either μH[d] s = ∞ or μH[d'] s = 0, see MeasureTheory.Measure.hausdorffMeasure_zero_or_top. In Mathlib.Topology.MetricSpace.HausdorffDimension we use this fact to define the Hausdorff dimension dimH of a set in an (extended) metric space.

We also define two generalizations of the Hausdorff measure. In one generalization (see MeasureTheory.Measure.mkMetric) we take any function m (diam s) instead of (diam s) ^ d. In an even more general definition (see MeasureTheory.Measure.mkMetric') we use any function of m : Set X → ℝ≥0∞. Some authors start with a partial function m defined only on some sets s : Set X (e.g., only on balls or only on measurable sets). This is equivalent to our definition applied to MeasureTheory.extend m.

We also define a predicate MeasureTheory.OuterMeasure.IsMetric which says that an outer measure is additive on metric separated pairs of sets: μ (s ∪ t) = μ s + μ t provided that ⨅ (x ∈ s) (y ∈ t), edist x y ≠ 0. This is the property required for the Caratheodory theorem MeasureTheory.OuterMeasure.IsMetric.borel_le_caratheodory, so we prove this theorem for any metric outer measure, then prove that outer measures constructed using mkMetric' are metric outer measures.

## Main definitions #

• MeasureTheory.OuterMeasure.IsMetric: an outer measure μ is called metric if μ (s ∪ t) = μ s + μ t for any two metric separated sets s and t. A metric outer measure in a Borel extended metric space is guaranteed to satisfy the Caratheodory condition, see MeasureTheory.OuterMeasure.IsMetric.borel_le_caratheodory.
• MeasureTheory.OuterMeasure.mkMetric' and its particular case MeasureTheory.OuterMeasure.mkMetric: a construction of an outer measure that is guaranteed to be metric. Both constructions are generalizations of the Hausdorff measure. The same measures interpreted as Borel measures are called MeasureTheory.Measure.mkMetric' and MeasureTheory.Measure.mkMetric.
• MeasureTheory.Measure.hausdorffMeasure a.k.a. μH[d]: the d-dimensional Hausdorff measure. There are many definitions of the Hausdorff measure that differ from each other by a multiplicative constant. We put μH[d] s = ⨆ r > 0, ⨅ (t : ℕ → Set X) (hts : s ⊆ ⋃ n, t n) (ht : ∀ n, EMetric.diam (t n) ≤ r), ∑' n, ⨆ (ht : ¬Set.Subsingleton (t n)), (EMetric.diam (t n)) ^ d, see MeasureTheory.Measure.hausdorffMeasure_apply. In the most interesting case 0 < d one can omit the ⨆ (ht : ¬Set.Subsingleton (t n)) part.

## Main statements #

### Basic properties #

• MeasureTheory.OuterMeasure.IsMetric.borel_le_caratheodory: if μ is a metric outer measure on an extended metric space X (that is, it is additive on pairs of metric separated sets), then every Borel set is Caratheodory measurable (hence, μ defines an actual MeasureTheory.Measure). See also MeasureTheory.Measure.mkMetric.
• MeasureTheory.Measure.hausdorffMeasure_mono: μH[d] s is an antitone function of d.
• MeasureTheory.Measure.hausdorffMeasure_zero_or_top: if d₁ < d₂, then for any s, either μH[d₂] s = 0 or μH[d₁] s = ∞. Together with the previous lemma, this means that μH[d] s is equal to infinity on some ray (-∞, D) and is equal to zero on (D, +∞), where D is a possibly infinite number called the Hausdorff dimension of s; μH[D] s can be zero, infinity, or anything in between.
• MeasureTheory.Measure.noAtoms_hausdorff: Hausdorff measure has no atoms.

### Hausdorff measure in ℝⁿ#

• MeasureTheory.hausdorffMeasure_pi_real: for a nonempty ι, μH[card ι] on ι → ℝ equals Lebesgue measure.

## Notations #

We use the following notation localized in MeasureTheory.

• μH[d] : MeasureTheory.Measure.hausdorffMeasure d

## Implementation notes #

There are a few similar constructions called the d-dimensional Hausdorff measure. E.g., some sources only allow coverings by balls and use r ^ d instead of (diam s) ^ d. While these construction lead to different Hausdorff measures, they lead to the same notion of the Hausdorff dimension.

## Tags #

Hausdorff measure, measure, metric measure

### Metric outer measures #

In this section we define metric outer measures and prove Caratheodory theorem: a metric outer measure has the Caratheodory property.

We say that an outer measure μ in an (e)metric space is metric if μ (s ∪ t) = μ s + μ t for any two metric separated sets s, t.

Equations
• μ.IsMetric = ∀ (s t : Set X), μ (s t) = μ s + μ t
Instances For
theorem MeasureTheory.OuterMeasure.IsMetric.finset_iUnion_of_pairwise_separated {ι : Type u_1} {X : Type u_2} [] {μ : } (hm : μ.IsMetric) {I : } {s : ιSet X} (hI : iI, jI, i jIsMetricSeparated (s i) (s j)) :
μ (iI, s i) = iI, μ (s i)

A metric outer measure is additive on a finite set of pairwise metric separated sets.

theorem MeasureTheory.OuterMeasure.IsMetric.borel_le_caratheodory {X : Type u_2} [] {μ : } (hm : μ.IsMetric) :
μ.caratheodory

Caratheodory theorem. If m is a metric outer measure, then every Borel measurable set t is Caratheodory measurable: for any (not necessarily measurable) set s we have μ (s ∩ t) + μ (s \ t) = μ s.

theorem MeasureTheory.OuterMeasure.IsMetric.le_caratheodory {X : Type u_2} [] {μ : } [] [] (hm : μ.IsMetric) :
inst✝¹ μ.caratheodory

### Constructors of metric outer measures #

In this section we provide constructors MeasureTheory.OuterMeasure.mkMetric' and MeasureTheory.OuterMeasure.mkMetric and prove that these outer measures are metric outer measures. We also prove basic lemmas about map/comap of these measures.

def MeasureTheory.OuterMeasure.mkMetric'.pre {X : Type u_2} [] (m : Set XENNReal) (r : ENNReal) :

Auxiliary definition for OuterMeasure.mkMetric': given a function on sets m : Set X → ℝ≥0∞, returns the maximal outer measure μ such that μ s ≤ m s for any set s of diameter at most r.

Equations
Instances For
def MeasureTheory.OuterMeasure.mkMetric' {X : Type u_2} [] (m : Set XENNReal) :

Given a function m : Set X → ℝ≥0∞, mkMetric' m is the supremum of mkMetric'.pre m r over r > 0. Equivalently, it is the limit of mkMetric'.pre m r as r tends to zero from the right.

Equations
Instances For
def MeasureTheory.OuterMeasure.mkMetric {X : Type u_2} [] (m : ) :

Given a function m : ℝ≥0∞ → ℝ≥0∞ and r > 0, let μ r be the maximal outer measure such that μ s ≤ m (EMetric.diam s) whenever EMetric.diam s < r. Then mkMetric m = ⨆ r > 0, μ r.

Equations
Instances For
theorem MeasureTheory.OuterMeasure.mkMetric'.le_pre {X : Type u_2} [] {m : Set XENNReal} {r : ENNReal} {μ : } :
∀ (s : Set X), μ s m s
theorem MeasureTheory.OuterMeasure.mkMetric'.pre_le {X : Type u_2} [] {m : Set XENNReal} {r : ENNReal} {s : Set X} (hs : ) :
m s
theorem MeasureTheory.OuterMeasure.mkMetric'.mono_pre {X : Type u_2} [] (m : Set XENNReal) {r : ENNReal} {r' : ENNReal} (h : r r') :
theorem MeasureTheory.OuterMeasure.mkMetric'.tendsto_pre {X : Type u_2} [] (m : Set XENNReal) (s : Set X) :
Filter.Tendsto (fun (r : ENNReal) => ) (nhdsWithin 0 ()) ()
theorem MeasureTheory.OuterMeasure.mkMetric'.tendsto_pre_nat {X : Type u_2} [] (m : Set XENNReal) (s : Set X) :
Filter.Tendsto (fun (n : ) => ) Filter.atTop ()
theorem MeasureTheory.OuterMeasure.mkMetric'.trim_pre {X : Type u_2} [] [] (m : Set XENNReal) (hcl : ∀ (s : Set X), m () = m s) (r : ENNReal) :

MeasureTheory.OuterMeasure.mkMetric'.pre m r is a trimmed measure provided that m (closure s) = m s for any set s.

theorem MeasureTheory.OuterMeasure.mkMetric'_isMetric {X : Type u_2} [] (m : Set XENNReal) :
.IsMetric

An outer measure constructed using OuterMeasure.mkMetric' is a metric outer measure.

theorem MeasureTheory.OuterMeasure.mkMetric_mono_smul {X : Type u_2} [] {m₁ : } {m₂ : } {c : ENNReal} (hc : c ) (h0 : c 0) (hle : m₁ ≤ᶠ[nhdsWithin 0 ()] c m₂) :

If c ∉ {0, ∞} and m₁ d ≤ c * m₂ d for d < ε for some ε > 0 (we use ≤ᶠ[𝓝[≥] 0] to state this), then mkMetric m₁ hm₁ ≤ c • mkMetric m₂ hm₂.

theorem MeasureTheory.OuterMeasure.mkMetric_mono {X : Type u_2} [] {m₁ : } {m₂ : } (hle : m₁ ≤ᶠ[nhdsWithin 0 ()] m₂) :

If m₁ d ≤ m₂ d for d < ε for some ε > 0 (we use ≤ᶠ[𝓝[≥] 0] to state this), then mkMetric m₁ hm₁ ≤ mkMetric m₂ hm₂.

theorem MeasureTheory.OuterMeasure.isometry_comap_mkMetric {X : Type u_2} {Y : Type u_3} [] [] (m : ) {f : XY} (hf : ) (H : ) :
theorem MeasureTheory.OuterMeasure.mkMetric_smul {X : Type u_2} [] (m : ) {c : ENNReal} (hc : c ) (hc' : c 0) :
theorem MeasureTheory.OuterMeasure.mkMetric_nnreal_smul {X : Type u_2} [] (m : ) {c : NNReal} (hc : c 0) :
theorem MeasureTheory.OuterMeasure.isometry_map_mkMetric {X : Type u_2} {Y : Type u_3} [] [] (m : ) {f : XY} (hf : ) (H : ) :
theorem MeasureTheory.OuterMeasure.isometryEquiv_comap_mkMetric {X : Type u_2} {Y : Type u_3} [] [] (m : ) (f : X ≃ᵢ Y) :
theorem MeasureTheory.OuterMeasure.isometryEquiv_map_mkMetric {X : Type u_2} {Y : Type u_3} [] [] (m : ) (f : X ≃ᵢ Y) :
theorem MeasureTheory.OuterMeasure.trim_mkMetric {X : Type u_2} [] [] [] (m : ) :
theorem MeasureTheory.OuterMeasure.le_mkMetric {X : Type u_2} [] (m : ) (μ : ) (r : ENNReal) (h0 : 0 < r) (hr : ∀ (s : Set X), μ s m ()) :

### Metric measures #

In this section we use MeasureTheory.OuterMeasure.toMeasure and theorems about MeasureTheory.OuterMeasure.mkMetric'/MeasureTheory.OuterMeasure.mkMetric to define MeasureTheory.Measure.mkMetric'/MeasureTheory.Measure.mkMetric. We also restate some lemmas about metric outer measures for metric measures.

def MeasureTheory.Measure.mkMetric' {X : Type u_2} [] [] [] (m : Set XENNReal) :

Given a function m : Set X → ℝ≥0∞, mkMetric' m is the supremum of μ r over r > 0, where μ r is the maximal outer measure μ such that μ s ≤ m s for all s. While each μ r is an outer measure, the supremum is a measure.

Equations
• = .toMeasure
Instances For
def MeasureTheory.Measure.mkMetric {X : Type u_2} [] [] [] (m : ) :

Given a function m : ℝ≥0∞ → ℝ≥0∞, mkMetric m is the supremum of μ r over r > 0, where μ r is the maximal outer measure μ such that μ s ≤ m s for all sets s that contain at least two points. While each mkMetric'.pre is an outer measure, the supremum is a measure.

Equations
• = .toMeasure
Instances For
@[simp]
theorem MeasureTheory.Measure.mkMetric'_toOuterMeasure {X : Type u_2} [] [] [] (m : Set XENNReal) :
.toOuterMeasure = .trim
@[simp]
theorem MeasureTheory.Measure.mkMetric_toOuterMeasure {X : Type u_2} [] [] [] (m : ) :
.toOuterMeasure =
theorem MeasureTheory.OuterMeasure.coe_mkMetric {X : Type u_2} [] [] [] (m : ) :
theorem MeasureTheory.Measure.mkMetric_mono_smul {X : Type u_2} [] [] [] {m₁ : } {m₂ : } {c : ENNReal} (hc : c ) (h0 : c 0) (hle : m₁ ≤ᶠ[nhdsWithin 0 ()] c m₂) :

If c ∉ {0, ∞} and m₁ d ≤ c * m₂ d for d < ε for some ε > 0 (we use ≤ᶠ[𝓝[≥] 0] to state this), then mkMetric m₁ hm₁ ≤ c • mkMetric m₂ hm₂.

theorem MeasureTheory.Measure.mkMetric_mono {X : Type u_2} [] [] [] {m₁ : } {m₂ : } (hle : m₁ ≤ᶠ[nhdsWithin 0 ()] m₂) :

If m₁ d ≤ m₂ d for d < ε for some ε > 0 (we use ≤ᶠ[𝓝[≥] 0] to state this), then mkMetric m₁ hm₁ ≤ mkMetric m₂ hm₂.

theorem MeasureTheory.Measure.mkMetric_apply {X : Type u_2} [] [] [] (m : ) (s : Set X) :
= ⨆ (r : ENNReal), ⨆ (_ : 0 < r), ⨅ (t : Set X), ⨅ (_ : s ), ⨅ (_ : ∀ (n : ), EMetric.diam (t n) r), ∑' (n : ), ⨆ (_ : (t n).Nonempty), m (EMetric.diam (t n))

A formula for MeasureTheory.Measure.mkMetric.

theorem MeasureTheory.Measure.le_mkMetric {X : Type u_2} [] [] [] (m : ) (μ : ) (ε : ENNReal) (h₀ : 0 < ε) (h : ∀ (s : Set X), μ s m ()) :
theorem MeasureTheory.Measure.mkMetric_le_liminf_tsum {X : Type u_2} [] [] [] {β : Type u_4} {ι : βType u_5} [∀ (n : β), Countable (ι n)] (s : Set X) {l : } (r : βENNReal) (hr : Filter.Tendsto r l (nhds 0)) (t : (n : β) → ι nSet X) (ht : ∀ᶠ (n : β) in l, ∀ (i : ι n), EMetric.diam (t n i) r n) (hst : ∀ᶠ (n : β) in l, s ⋃ (i : ι n), t n i) (m : ) :
Filter.liminf (fun (n : β) => ∑' (i : ι n), m (EMetric.diam (t n i))) l

To bound the Hausdorff measure (or, more generally, for a measure defined using MeasureTheory.Measure.mkMetric) of a set, one may use coverings with maximum diameter tending to 0, indexed by any sequence of countable types.

theorem MeasureTheory.Measure.mkMetric_le_liminf_sum {X : Type u_2} [] [] [] {β : Type u_4} {ι : βType u_5} [hι : (n : β) → Fintype (ι n)] (s : Set X) {l : } (r : βENNReal) (hr : Filter.Tendsto r l (nhds 0)) (t : (n : β) → ι nSet X) (ht : ∀ᶠ (n : β) in l, ∀ (i : ι n), EMetric.diam (t n i) r n) (hst : ∀ᶠ (n : β) in l, s ⋃ (i : ι n), t n i) (m : ) :
Filter.liminf (fun (n : β) => i : ι n, m (EMetric.diam (t n i))) l

To bound the Hausdorff measure (or, more generally, for a measure defined using MeasureTheory.Measure.mkMetric) of a set, one may use coverings with maximum diameter tending to 0, indexed by any sequence of finite types.

### Hausdorff measure and Hausdorff dimension #

def MeasureTheory.Measure.hausdorffMeasure {X : Type u_2} [] [] [] (d : ) :

Hausdorff measure on an (e)metric space.

Equations
Instances For
Equations
• One or more equations did not get rendered due to their size.
Instances For
theorem MeasureTheory.Measure.le_hausdorffMeasure {X : Type u_2} [] [] [] (d : ) (μ : ) (ε : ENNReal) (h₀ : 0 < ε) (h : ∀ (s : Set X), μ s ) :
theorem MeasureTheory.Measure.hausdorffMeasure_apply {X : Type u_2} [] [] [] (d : ) (s : Set X) :
= ⨆ (r : ENNReal), ⨆ (_ : 0 < r), ⨅ (t : Set X), ⨅ (_ : s ⋃ (n : ), t n), ⨅ (_ : ∀ (n : ), EMetric.diam (t n) r), ∑' (n : ), ⨆ (_ : (t n).Nonempty), EMetric.diam (t n) ^ d

A formula for μH[d] s.

theorem MeasureTheory.Measure.hausdorffMeasure_le_liminf_tsum {X : Type u_2} [] [] [] {β : Type u_4} {ι : βType u_5} [∀ (n : β), Countable (ι n)] (d : ) (s : Set X) {l : } (r : βENNReal) (hr : Filter.Tendsto r l (nhds 0)) (t : (n : β) → ι nSet X) (ht : ∀ᶠ (n : β) in l, ∀ (i : ι n), EMetric.diam (t n i) r n) (hst : ∀ᶠ (n : β) in l, s ⋃ (i : ι n), t n i) :
Filter.liminf (fun (n : β) => ∑' (i : ι n), EMetric.diam (t n i) ^ d) l

To bound the Hausdorff measure of a set, one may use coverings with maximum diameter tending to 0, indexed by any sequence of countable types.

theorem MeasureTheory.Measure.hausdorffMeasure_le_liminf_sum {X : Type u_2} [] [] [] {β : Type u_4} {ι : βType u_5} [(n : β) → Fintype (ι n)] (d : ) (s : Set X) {l : } (r : βENNReal) (hr : Filter.Tendsto r l (nhds 0)) (t : (n : β) → ι nSet X) (ht : ∀ᶠ (n : β) in l, ∀ (i : ι n), EMetric.diam (t n i) r n) (hst : ∀ᶠ (n : β) in l, s ⋃ (i : ι n), t n i) :
Filter.liminf (fun (n : β) => i : ι n, EMetric.diam (t n i) ^ d) l

To bound the Hausdorff measure of a set, one may use coverings with maximum diameter tending to 0, indexed by any sequence of finite types.

theorem MeasureTheory.Measure.hausdorffMeasure_zero_or_top {X : Type u_2} [] [] [] {d₁ : } {d₂ : } (h : d₁ < d₂) (s : Set X) :

If d₁ < d₂, then for any set s we have either μH[d₂] s = 0, or μH[d₁] s = ∞.

theorem MeasureTheory.Measure.hausdorffMeasure_mono {X : Type u_2} [] [] [] {d₁ : } {d₂ : } (h : d₁ d₂) (s : Set X) :

Hausdorff measure μH[d] s is monotone in d.

theorem MeasureTheory.Measure.noAtoms_hausdorff (X : Type u_2) [] [] [] {d : } (hd : 0 < d) :
@[simp]
theorem MeasureTheory.Measure.hausdorffMeasure_zero_singleton {X : Type u_2} [] [] [] (x : X) :
theorem MeasureTheory.Measure.one_le_hausdorffMeasure_zero_of_nonempty {X : Type u_2} [] [] [] {s : Set X} (h : s.Nonempty) :
theorem MeasureTheory.Measure.hausdorffMeasure_le_one_of_subsingleton {X : Type u_2} [] [] [] {s : Set X} (hs : s.Subsingleton) {d : } (hd : 0 d) :

### Hausdorff measure, Hausdorff dimension, and Hölder or Lipschitz continuous maps #

theorem HolderOnWith.hausdorffMeasure_image_le {X : Type u_2} {Y : Type u_3} [] [] [] [] [] [] {C : NNReal} {r : NNReal} {f : XY} {s : Set X} (h : HolderOnWith C r f s) (hr : 0 < r) {d : } (hd : 0 d) :
(f '' s) C ^ d * () s

If f : X → Y is Hölder continuous on s with a positive exponent r, then μH[d] (f '' s) ≤ C ^ d * μH[r * d] s.

theorem LipschitzOnWith.hausdorffMeasure_image_le {X : Type u_2} {Y : Type u_3} [] [] [] [] [] [] {K : NNReal} {f : XY} {s : Set X} (h : ) {d : } (hd : 0 d) :
(f '' s) K ^ d *

If f : X → Y is K-Lipschitz on s, then μH[d] (f '' s) ≤ K ^ d * μH[d] s.

theorem LipschitzWith.hausdorffMeasure_image_le {X : Type u_2} {Y : Type u_3} [] [] [] [] [] [] {K : NNReal} {f : XY} (h : ) {d : } (hd : 0 d) (s : Set X) :
(f '' s) K ^ d *

If f is a K-Lipschitz map, then it increases the Hausdorff d-measures of sets at most by the factor of K ^ d.

theorem MeasureTheory.Measure.hausdorffMeasure_smul₀ {𝕜 : Type u_4} {E : Type u_5} [] [] [] [] {d : } (hd : 0 d) {r : 𝕜} (hr : r 0) (s : Set E) :
(r s) =

### Antilipschitz maps do not decrease Hausdorff measures and dimension #

theorem AntilipschitzWith.hausdorffMeasure_preimage_le {X : Type u_2} {Y : Type u_3} [] [] [] [] [] [] {f : XY} {K : NNReal} {d : } (hf : ) (hd : 0 d) (s : Set Y) :
K ^ d *
theorem AntilipschitzWith.le_hausdorffMeasure_image {X : Type u_2} {Y : Type u_3} [] [] [] [] [] [] {f : XY} {K : NNReal} {d : } (hf : ) (hd : 0 d) (s : Set X) :
K ^ d * (f '' s)

### Isometries preserve the Hausdorff measure and Hausdorff dimension #

theorem Isometry.hausdorffMeasure_image {X : Type u_2} {Y : Type u_3} [] [] [] [] [] [] {f : XY} {d : } (hf : ) (hd : 0 d ) (s : Set X) :
theorem Isometry.hausdorffMeasure_preimage {X : Type u_2} {Y : Type u_3} [] [] [] [] [] [] {f : XY} {d : } (hf : ) (hd : 0 d ) (s : Set Y) :
=
theorem Isometry.map_hausdorffMeasure {X : Type u_2} {Y : Type u_3} [] [] [] [] [] [] {f : XY} {d : } (hf : ) (hd : 0 d ) :
@[simp]
theorem IsometryEquiv.hausdorffMeasure_image {X : Type u_2} {Y : Type u_3} [] [] [] [] [] [] (e : X ≃ᵢ Y) (d : ) (s : Set X) :
@[simp]
theorem IsometryEquiv.hausdorffMeasure_preimage {X : Type u_2} {Y : Type u_3} [] [] [] [] [] [] (e : X ≃ᵢ Y) (d : ) (s : Set Y) :
@[simp]
theorem IsometryEquiv.map_hausdorffMeasure {X : Type u_2} {Y : Type u_3} [] [] [] [] [] [] (e : X ≃ᵢ Y) (d : ) :
theorem IsometryEquiv.measurePreserving_hausdorffMeasure {X : Type u_2} {Y : Type u_3} [] [] [] [] [] [] (e : X ≃ᵢ Y) (d : ) :
theorem MeasureTheory.hausdorffMeasure_vadd {X : Type u_2} [] [] [] {α : Type u_4} [VAdd α X] [] {d : } (c : α) (h : 0 d Function.Surjective fun (x : X) => c +ᵥ x) (s : Set X) :
theorem MeasureTheory.hausdorffMeasure_smul {X : Type u_2} [] [] [] {α : Type u_4} [SMul α X] [] {d : } (c : α) (h : 0 d Function.Surjective fun (x : X) => c x) (s : Set X) :
instance MeasureTheory.instIsAddLeftInvariantHausdorffMeasureOfIsometricVAdd {X : Type u_2} [] [] [] {d : } [] [] :
Equations
• =
instance MeasureTheory.instIsMulLeftInvariantHausdorffMeasureOfIsometricSMul {X : Type u_2} [] [] [] {d : } [] [] :
.IsMulLeftInvariant
Equations
• =
Equations
• =
instance MeasureTheory.instIsMulRightInvariantHausdorffMeasureOfIsometricSMulMulOpposite {X : Type u_2} [] [] [] {d : } [] [] :
.IsMulRightInvariant
Equations
• =

### Hausdorff measure and Lebesgue measure #

@[simp]
theorem MeasureTheory.hausdorffMeasure_pi_real {ι : Type u_4} [] :
= MeasureTheory.volume

In the space ι → ℝ, the Hausdorff measure coincides exactly with the Lebesgue measure.

theorem MeasureTheory.hausdorffMeasure_measurePreserving_funUnique (ι : Type u_1) (X : Type u_2) [] [] [] [] (d : ) :
theorem MeasureTheory.hausdorffMeasure_measurePreserving_piFinTwo (α : Fin 2Type u_4) [(i : Fin 2) → MeasurableSpace (α i)] [(i : Fin 2) → EMetricSpace (α i)] [∀ (i : Fin 2), BorelSpace (α i)] [∀ (i : Fin 2), ] (d : ) :
@[simp]
theorem MeasureTheory.hausdorffMeasure_real :
= MeasureTheory.volume

In the space ℝ, the Hausdorff measure coincides exactly with the Lebesgue measure.

@[simp]
theorem MeasureTheory.hausdorffMeasure_prod_real :
= MeasureTheory.volume

In the space ℝ × ℝ, the Hausdorff measure coincides exactly with the Lebesgue measure.

### Geometric results in affine spaces #

theorem MeasureTheory.hausdorffMeasure_smul_right_image {E : Type u_5} [] [] [] (v : E) (s : ) :
((fun (r : ) => r v) '' s) =
theorem MeasureTheory.hausdorffMeasure_homothety_image {𝕜 : Type u_4} {E : Type u_5} {P : Type u_6} [] [] [] [] [] [] {d : } (hd : 0 d) (x : P) {c : 𝕜} (hc : c 0) (s : Set P) :
(() '' s) =

Scaling by c around x scales the measure by ‖c‖₊ ^ d.

theorem MeasureTheory.hausdorffMeasure_homothety_preimage {𝕜 : Type u_4} {E : Type u_5} {P : Type u_6} [] [] [] [] [] [] {d : } (hd : 0 d) (x : P) {c : 𝕜} (hc : c 0) (s : Set P) :
(() ⁻¹' s) =

TODO: prove Measure.map (AffineMap.homothety x c) μH[d] = ‖c‖₊⁻¹ ^ d • μH[d], which needs a more general version of AffineMap.homothety_continuous.

theorem MeasureTheory.hausdorffMeasure_lineMap_image {E : Type u_5} {P : Type u_6} [] [] [] [] [] (x : P) (y : P) (s : ) :
(() '' s) =

Mapping a set of reals along a line segment scales the measure by the length of a segment.

This is an auxiliary result used to prove hausdorffMeasure_affineSegment.

@[simp]
theorem MeasureTheory.hausdorffMeasure_affineSegment {E : Type u_5} {P : Type u_6} [] [] [] [] [] (x : P) (y : P) :
= edist x y

The measure of a segment is the distance between its endpoints.

@[simp]
theorem MeasureTheory.hausdorffMeasure_segment {E : Type u_7} [] [] [] (x : E) (y : E) :
= edist x y

The measure of a segment is the distance between its endpoints.