mathlib documentation


Haar measure

In this file we prove the existence of Haar measure for a locally compact Hausdorff topological group.

For the construction, we follow the write-up by Jonathan Gleason, Existence and Uniqueness of Haar Measure. This is essentially the same argument as in

We construct the Haar measure first on compact sets. For this we define (K : U) as the (smallest) number of left-translates of U are needed to cover K (index in the formalization). Then we define a function h on compact sets as lim_U (K : U) / (K₀ : U), where U becomes a smaller and smaller open neighborhood of 1, and K₀ is a fixed compact set with nonempty interior. This function is chaar in the formalization, and we define the limit formally using Tychonoff's theorem.

This function h forms a content, which we can extend to an outer measure μ (haar_outer_measure), and obtain the Haar measure from that (haar_measure). We normalize the Haar measure so that the measure of K₀ is 1.

Note that μ need not coincide with h on compact sets, according to [halmos1950measure, ch. X, §53 p.233]. However, we know that h(K) lies between μ(Kᵒ) and μ(K), where denotes the interior.

Main Declarations


We put the internal functions in the construction of the Haar measure in a namespace, so that the chosen names don't clash with other declarations. We first define a couple of the functions before proving the properties (that require that G is a topological group).

def measure_theory.measure.haar.index {G : Type u_1} [group G] :
set Gset G

The index or Haar covering number or ratio of K w.r.t. V, denoted (K : V): it is the smallest number of (left) translates of V that is necessary to cover K. It is defined to be 0 if no finite number of translates cover K.


prehaar K₀ U K is a weighted version of the index, defined as (K : U)/(K₀ : U). In the applications K₀ is compact with non-empty interior, U is open containing 1, and K is any compact set. The argument K is a (bundled) compact set, so that we can consider prehaar K₀ U as an element of haar_product (below).


haar_product K₀ is the product of intervals [0, (K : K₀)], for all compact sets K. For all U, we can show that prehaar K₀ U ∈ haar_product K₀.


The closure of the collection of elements of the form prehaar K₀ U, for U open neighbourhoods of 1, contained in V. The closure is taken in the space compacts G → ℝ, with the topology of pointwise convergence. We show that the intersection of all these sets is nonempty, and the Haar measure on compact sets is defined to be an element in the closure of this intersection.


Lemmas about index

theorem measure_theory.measure.haar.index_defined {G : Type u_1} [group G] [topological_space G] [topological_group G] {K V : set G} :
is_compact K(interior V).nonempty(∃ (n : ), n finset.card '' {t : finset G | K ⋃ (g : G) (H : g t), (λ (h : G), g * h) ⁻¹' V})

If K is compact and V has nonempty interior, then the index (K : V) is well-defined, there is a finite set t satisfying the desired properties.

theorem measure_theory.measure.haar.index_elim {G : Type u_1} [group G] [topological_space G] [topological_group G] {K V : set G} :
is_compact K(interior V).nonempty(∃ (t : finset G), (K ⋃ (g : G) (H : g t), (λ (h : G), g * h) ⁻¹' V) t.card = measure_theory.measure.haar.index K V)

Lemmas about prehaar

Lemmas about haar_product

The Haar measure on compact sets

The Haar measure on compact sets, defined to be an arbitrary element in the intersection of all the sets cl_prehaar K₀ V in haar_product K₀.


We only prove the properties for echaar that we use at least twice below.

The variant of chaar_mono for echaar

The variant of chaar_self for echaar

The Haar outer measure

The Haar outer measure on G. It is not normalized, and is mainly used to construct haar_measure, which is a normalized measure.


The Haar measure