Lebesgue Measure, Counting Measure, and σ-Additivity

Mathematical Foundations, numerical solution.

Open In Colab

Lebesgue Measure, Counting Measure, and σ-Additivity


This exercise develops the foundational properties of two measures that serve as stepping stones toward the Haar measure on the unitary group: the Lebesgue measure on the real line and the counting measure on a finite group. The exercise culminates in the Vitali argument, a proof that no translation-invariant, σ-additive measure can be defined on all subsets of the continuum, motivating the need for σ-algebras.

Background

A measure is a rule that assigns a size to subsets of a space while respecting the idea that the size of a disjoint union is the sum of the sizes. When the total size is set to one the measure becomes a probability. Two examples sit underneath everything that follows. The Lebesgue measure on the real line is the formal version of ordinary length, and it does not change when a set is shifted along the line. The counting measure on a finite group gives every element weight one and stays the same when the group is multiplied through by any fixed element.

The additivity that makes these measures useful also constrains them in surprising ways. If sizes add up over countable disjoint unions, then a countable set such as the rationals inside \([0,1]\) must have length zero, even though the rationals are dense and seem to be everywhere. The constraint reaches further. Vitali constructed a set on the circle that cannot be assigned any size at all consistent with translation invariance, which shows that no translation-invariant probability measure can weigh every subset of a continuum.

The lesson is that a measure cannot be allowed to act on all subsets, only on a well-behaved collection closed under the usual set operations, called a \(\sigma\)-algebra. The standard choice generated by the open sets is the family of Borel sets, and this is the arena on which the Haar measure of \(U(D)\) is eventually defined.

The notebook confirms that the rationals carry zero Lebesgue measure and that the counting measure on the Pauli group is left-invariant, then rebuilds the Vitali contradiction.

Mathematical background

The existence of an invariant measure is tied to the structure of the group it lives on. A topological group carries both a group law and a topology, with multiplication and inversion continuous, and the Haar measure is the unique (up to overall scale) left-invariant measure on a locally compact group of this kind. Compactness is what makes it normalizable. For \(U(D)\), every element satisfies \(U^\dagger U = \mathbb{I}\), so the group is closed and bounded, hence compact, and its total Haar volume is finite and can be set to one. The contrast is the general linear group \(\mathrm{GL}(D,\mathbb{C})\) of invertible matrices, which is a topological group but is neither bounded, since entries can grow without limit, nor closed, since a limit of invertible matrices can become singular. Its Haar measure still exists but has infinite total volume and cannot be normalized, which is why a uniform notion of randomness exists for unitaries but not for arbitrary invertible matrices. The \(\sigma\)-algebra of Borel sets generated by the open sets is the arena on which all of this is defined.

1. Physical Motivation

In quantum information theory, we constantly need to “average over random unitaries”, for instance, to compute the Page entropy of a random state, to derive the concentration of measure that causes barren plateaus, or to prove that random circuits form unitary designs. All of these require integrating functions over the unitary group \(U(D)\) with respect to its Haar measure.

But what is a measure, exactly? And why can’t we simply assign a “size” to every subset of \(U(D)\), the way we assign probabilities to subsets of a finite set?

This exercise addresses these questions through two concrete examples: - The Lebesgue measure on \(\mathbb{R}\), the prototypical “translation-invariant volume” that the Haar measure generalizes. - The counting measure on the Pauli group, the simplest Haar measure, on a finite group.

The Vitali argument then shows why σ-algebras are necessary: the naive hope that every subset can be measured consistently is mathematically impossible on the continuum. This is the conceptual foundation that makes the Borel σ-algebra and the Haar measure well-defined.

2. Mathematical Toolbox

Measure theory has three ingredients that build on each other.

Tool 0, The cast of characters: \(\Omega\), \(\mathcal{F}\), \(\mu\).

  • \(\Omega\) is the sample space, the set of all possible outcomes. Think of it as the universe of objects we want to study. Examples: \(\Omega = \{1, 2, 3, 4, 5, 6\}\) for a die roll, \(\Omega = \mathbb{R}\) for a continuous variable, \(\Omega = U(D)\) for a random unitary matrix.

  • \(\mathcal{F}\) is a σ-algebra on \(\Omega\), a collection of subsets of \(\Omega\) that we declare ‘measurable’. A subset \(A \subseteq \Omega\) is called measurable if \(A \in \mathcal{F}\); this means that the measure function \(\mu\) can be evaluated on \(A\), giving a well-defined size \(\mu(A) \geq 0\). A subset that is not in \(\mathcal{F}\) is non-measurable: no consistent size can be assigned to it at all (not ‘unknown’ or ‘infinite’, but genuinely undefined). \(\mathcal{F}\) must satisfy three axioms: (S1) \(\Omega \in \mathcal{F}\), (S2) if \(A \in \mathcal{F}\) then \(\Omega \setminus A \in \mathcal{F}\) (closed under complements), (S3) if \(A_1, A_2, \ldots \in \mathcal{F}\) then \(\bigcup_k A_k \in \mathcal{F}\) (closed under countable unions). The pair \((\Omega, \mathcal{F})\) is called a measurable space, it tells us what we can measure, but not how much.

  • \(\mu: \mathcal{F} \to [0, \infty]\) is a measure, the function that actually assigns a non-negative size (length, volume, probability) to each measurable set \(A \in \mathcal{F}\). The triple \((\Omega, \mathcal{F}, \mu)\) is called a measure space. If \(\mu(\Omega) = 1\), then \(\mu\) is a probability measure and \(\mu(A)\) is the probability that a randomly chosen element of \(\Omega\) falls in \(A\).

For the Haar measure on the unitary group, the concrete instantiation is: \[\Omega = U(D), \quad \mathcal{F} = \mathcal{B}(U(D)) \;\text{(Borel σ-algebra)}, \quad \mu = \mu_{\text{Haar}}.\]

Why not just use all subsets? For finite sets (like the Pauli group), we can, every subset is measurable under \(\mathcal{F} = 2^\Omega\) (the power set). But for continuous sets like \(\mathbb{R}\) or \(U(D)\), the power set is ‘too large’: the Vitali construction (Tool 4) shows that no consistent size assignment exists on all subsets. We must restrict to the Borel σ-algebra.
Tool 1, What a measure must satisfy. A measure \(\mu\) on \((\Omega, \mathcal{F})\) must obey two rules: 1. \(\mu(\emptyset) = 0\) (the empty set has zero size). 2. Countable additivity (σ-additivity): for pairwise disjoint measurable sets \(A_1, A_2, \ldots \in \mathcal{F}\): \[\mu\!\left(\bigsqcup_{k=1}^\infty A_k\right) = \sum_{k=1}^\infty \mu(A_k).\] This is the key property: the measure of a union of non-overlapping pieces equals the sum of the measures. It is the continuous generalization of the familiar rule \(P(A \cup B) = P(A) + P(B)\) for disjoint events.
Tool 2, Lebesgue measure on \(\mathbb{R}\). The Lebesgue measure \(\lambda\) is the unique (up to normalization) translation-invariant measure on the Borel σ-algebra \(\mathcal{B}(\mathbb{R})\). It assigns to every interval its length: \(\lambda([a,b]) = b - a\). Key consequence: single points have measure zero (\(\lambda(\{x\}) = 0\)), and therefore any countable set has measure zero by σ-additivity.
Tool 3, Counting measure on a finite group. For a finite group \(G = \{g_1, \ldots, g_n\}\), define \(\mu(A) = |A|/|G|\). This assigns equal weight \(1/|G|\) to each element. It is invariant under left-multiplication (\(\mu(gA) = \mu(A)\)) because \(g \cdot\) is a bijection. This is the Haar measure on a finite group, the simplest example of what we will generalize to \(U(D)\).

Tool 4, The Vitali construction (1905). Giuseppe Vitali was an Italian mathematician who proved a striking impossibility result: there is no way to assign a translation-invariant, σ-additive size to every subset of \([0,1)\) while keeping \(\mu([0,1)) = 1\). The proof constructs a specific pathological set, the Vitali set \(V\), by choosing one representative from each equivalence class of the relation ‘\(x \sim y\) if and only if \(x - y\) is rational’ (an equivalence class of \(x\) is just the set of all numbers in \([0,1)\) that differ from \(x\) by a rational number). This construction requires the axiom of choice (to simultaneously pick one element from each of the uncountably many equivalence classes). The resulting set \(V\) cannot be assigned any consistent size: if \(\mu(V) = 0\), then the countable union of its translates covers all of \([0,1)\) but has measure \(0 \neq 1\); if \(\mu(V) > 0\), the same union has infinite measure \(\neq 1\).

The lesson: on continuous spaces, we must restrict to a σ-algebra of well-behaved (Borel) sets.

Tool 5, Pauli group. The single-qubit Pauli group is \(\mathcal{P}_1 = \{\pm I, \pm iI, \pm X, \pm iX, \pm Y, \pm iY, \pm Z, \pm iZ\}\) with \(|\mathcal{P}_1| = 16\). Being a finite group, it has no Vitali-type obstruction: every subset is measurable under the power-set σ-algebra \(\mathcal{F} = 2^{\mathcal{P}_1}\).

3. Exercise

(a) Lebesgue measure of the rationals. Let \(A = \mathbb{Q} \cap [0,1]\). Using the countability of \(\mathbb{Q}\), write \(A = \{q_1, q_2, \ldots\}\). Show that \(\lambda(A) = 0\) via σ-additivity, and conclude \(\lambda([0,1] \setminus \mathbb{Q}) = 1\).

(b) Counting measure on the Pauli group. Define \(\mu(A) = |A|/16\) on \(\mathcal{P}_1\). Verify: - Finite additivity: \(\mu(A \sqcup B) = \mu(A) + \mu(B)\). - Left-invariance: \(\mu(gA) = \mu(A)\) for all \(g \in \mathcal{P}_1\) and \(A \subseteq \mathcal{P}_1\).

(c) The Vitali argument. Reproduce the proof that no translation-invariant, σ-additive measure on all subsets of \([0,1)\) can have \(\mu([0,1)) = 1\). Identify where the axiom of choice is used.

4. Analytical Derivation

Part (a): \(\lambda(\mathbb{Q} \cap [0,1]) = 0\)

Enumerate \(\mathbb{Q} \cap [0,1] = \{q_1, q_2, \ldots\}\) (possible since \(\mathbb{Q}\) is countable). Each singleton \(\{q_k\}\) has Lebesgue measure zero because for any \(\varepsilon > 0\): \[ \{q_k\} \subseteq (q_k - \varepsilon/2, q_k + \varepsilon/2), \quad \text{so} \quad \lambda(\{q_k\}) \leq \varepsilon. \] Since \(\varepsilon\) is arbitrary, \(\lambda(\{q_k\}) = 0\) for each \(k\). By σ-additivity (the singletons are pairwise disjoint): \[ \lambda(\mathbb{Q} \cap [0,1]) = \sum_{k=1}^\infty \lambda(\{q_k\}) = \sum_{k=1}^\infty 0 = 0. \] Since \([0,1] = (\mathbb{Q} \cap [0,1]) \sqcup ([0,1] \setminus \mathbb{Q})\) and \(\lambda([0,1]) = 1\): \[ \lambda([0,1] \setminus \mathbb{Q}) = 1 - 0 = 1. \]

Physical insight: A dense subset (\(\mathbb{Q}\) is dense in \(\mathbb{R}\)) can have measure zero: denseness is a topological property, while measure is a metric/volumetric property. The two notions of “size” are independent.

Part (b): Counting measure on \(\mathcal{P}_1\)

Here \(\Omega = \mathcal{P}_1\) (the 16-element Pauli group), \(\mathcal{F} = 2^{\mathcal{P}_1}\) (all subsets are measurable), and \(\mu(A) = |A|/16\).

Finite additivity: For disjoint \(A, B \subseteq \mathcal{P}_1\): \(|A \sqcup B| = |A| + |B|\) (elementary set theory), so \(\mu(A \sqcup B) = (|A| + |B|)/16 = \mu(A) + \mu(B)\). For a finite set, finite additivity implies σ-additivity (only finitely many nonempty disjoint subsets can exist).

Left-invariance: For any fixed \(g \in \mathcal{P}_1\), the map \(L_g: h \mapsto gh\) is a bijection on \(\mathcal{P}_1\) (with inverse \(L_{g^{-1}}\)). Therefore \(|gA| = |L_g(A)| = |A|\), and \(\mu(gA) = |A|/16 = \mu(A)\).

Physical insight: This is the Haar measure on \(\mathcal{P}_1\). When we write \(\mathbb{E}_{P \in \mathcal{P}}[f(P)] = \frac{1}{4^N}\sum_P f(P)\) in the twirling formulas of Part 3, we are integrating against this counting measure.

Part (c): The Vitali argument

Here \(\Omega = [0,1)\) and we ask: can we define a measure \(\mu\) on \(\mathcal{F} = 2^{[0,1)}\) (the power set, i.e., all subsets) with translation invariance, σ-additivity, and \(\mu(\Omega) = 1\)?

Define an equivalence relation \(\sim\) on \([0,1)\): we say \(x \sim y\) if and only if the difference \(x - y\) is a rational number (modulo 1). For example, \(0.3 \sim 0.8\) because \(0.3 - 0.8 = -0.5 = -1/2 \in \mathbb{Q}\). The equivalence class of a number \(x\) is the set of all numbers in \([0,1)\) that differ from \(x\) by a rational: \([x] = \{y \in [0,1) : y - x \in \mathbb{Q}\}\).

Step 1 (Axiom of Choice): Select exactly one representative from each equivalence class to form a set \(V \subset [0,1)\). This is where the axiom of choice is used, there are uncountably many equivalence classes and we must choose from all of them simultaneously.

Step 2: Consider the translates \(\{V + q \pmod{1} : q \in \mathbb{Q} \cap [0,1)\}\), where \(V + q = \{v + q \pmod{1} : v \in V\}\). These translates are: - Pairwise disjoint, if \(v_1 + q_1 \equiv v_2 + q_2 \pmod{1}\) with \(v_1, v_2 \in V\), then \(v_1 - v_2\) is rational, so \(v_1 \sim v_2\), meaning \(v_1\) and \(v_2\) are in the same equivalence class and hence \(v_1 = v_2\) (since \(V\) has only one representative per class), which forces \(q_1 = q_2\). - Cover all of \([0,1)\), every \(x \in [0,1)\) belongs to some equivalence class, so the representative \(v \in V\) of that class satisfies \(x \equiv v + q \pmod{1}\) for some rational \(q\).

Step 3: By σ-additivity and translation invariance: \[1 = \mu([0,1)) = \sum_{q \in \mathbb{Q} \cap [0,1)} \mu(V+q) = \sum_{q} \mu(V).\]

Step 4 (Contradiction): The right-hand side is a countable sum of copies of the same number \(c = \mu(V) \geq 0\). Such a sum equals \(0\) if \(c = 0\), and \(\infty\) if \(c > 0\). Neither equals \(1\). Contradiction. \(\square\)

Where the axiom of choice is used: In Step 1, to simultaneously select one element from each of the uncountably many equivalence classes.

Why it fails for finite/countable sets: For a finite group \(G\) with \(|G| = n\), each element has weight \(c = 1/n > 0\), and the sum of \(n\) copies of \(c\) is \(n \cdot (1/n) = 1\), a finite sum of equal terms can equal 1. The paradox requires a countably infinite sum.


5. Symbolic Verification (SymPy)

Code
import sympy as sp

# ── Part (a): Symbolic verification that λ({q}) = 0 ───────────────
# A singleton {q} is contained in (q-ε, q+ε) for any ε > 0,
# so λ({q}) ≤ 2ε.  Taking ε → 0:

eps = sp.Symbol('epsilon', positive=True)
upper_bound = 2 * eps
limit_result = sp.limit(upper_bound, eps, 0)
print(f'lim_{{ε→0}} 2ε = {limit_result}')
assert limit_result == 0
print('λ({q}) ≤ lim 2ε = 0 ')

# σ-additivity: λ(Q ∩ [0,1]) = Σ_k λ({q_k}) = Σ_k 0
N = sp.Symbol('N', integer=True, positive=True)
partial_sum = sp.Sum(sp.Integer(0), (sp.Symbol('k'), 1, N))
result = partial_sum.doit()
print(f'\nΣ_{{k=1}}^N 0 = {result}')
assert result == 0
print('λ(Q ∩ [0,1]) = Σ_{k=1}^∞ 0 = 0 ')
print('λ([0,1] \\ Q) = 1 - 0 = 1 ')
lim_{ε→0} 2ε = 0
λ({q}) ≤ lim 2ε = 0 

Σ_{k=1}^N 0 = 0
λ(Q ∩ [0,1]) = Σ_{k=1}^∞ 0 = 0 
λ([0,1] \ Q) = 1 - 0 = 1 
Code
# ── Part (c): Vitali argument - symbolic contradiction ────────────
# If μ(V) = c for some c ≥ 0, then Σ_{q ∈ Q} c must equal 1.
# But Σ_{k=1}^∞ c = c * ∞ for c > 0, and 0 for c = 0.

c = sp.Symbol('c', nonnegative=True)
k = sp.Symbol('k')

# Case 1: c = 0
case_zero = sp.Sum(sp.Integer(0), (k, 1, sp.oo)).doit()
print(f'Case c = 0:  Σ c = {case_zero}  ≠ 1  → contradiction')

# Case 2: c > 0 (concrete positive value)
c_pos = sp.Rational(1, 100)
case_positive = sp.Sum(c_pos, (k, 1, sp.oo)).doit()
print(f'Case c = 1/100:  Σ c = {case_positive}  ≠ 1  → contradiction')

# General: for any c > 0, N*c → ∞ as N → ∞
N = sp.Symbol('N', positive=True)
limit_Nc = sp.limit(N * c, N, sp.oo)
print(f'\nFor c > 0:  lim_{{N→∞}} N·c = {limit_Nc} ')
print('No c ≥ 0 satisfies Σ c = 1.  Vitali argument complete. ')
Case c = 0:  Σ c = 0  ≠ 1  → contradiction
Case c = 1/100:  Σ c = oo  ≠ 1  → contradiction

For c > 0:  lim_{N→∞} N·c = oo*sign(c) 
No c ≥ 0 satisfies Σ c = 1.  Vitali argument complete. 

6. Numerical Verification (NumPy)

Code
import numpy as np

# ── Part (a): ε-covering demonstrates λ(Q ∩ [0,1]) = 0 ──────────
from fractions import Fraction

# Enumerate rationals p/q in [0,1] for q ≤ 30
rationals = sorted(set(
    Fraction(p, q) for q in range(1, 31) for p in range(0, q+1)
))
rationals_01 = [float(r) for r in rationals if 0 <= r <= 1]
M = len(rationals_01)
print(f'Enumerated {M} rational numbers in [0,1]')
print()

# Cover q_k with interval of length ε/2^k.  Total = Σ_k ε/2^k ≤ 2ε.
print('ε-covering: total length of intervals covering first M rationals')
print('-' * 55)
for eps in [1.0, 0.1, 0.01, 0.001, 1e-6]:
    total_cover = sum(eps / 2**k for k in range(1, M+1))
    print(f'  ε = {eps:.1e}:  total cover = {total_cover:.2e}  (≤ 2ε = {2*eps:.2e})')

print()
print('As ε → 0, the total cover → 0.')
print('Therefore λ(Q ∩ [0,1]) = 0, and λ([0,1] \\ Q) = 1. ')
Enumerated 279 rational numbers in [0,1]

ε-covering: total length of intervals covering first M rationals
-------------------------------------------------------
  ε = 1.0e+00:  total cover = 1.00e+00  (≤ 2ε = 2.00e+00)
  ε = 1.0e-01:  total cover = 1.00e-01  (≤ 2ε = 2.00e-01)
  ε = 1.0e-02:  total cover = 1.00e-02  (≤ 2ε = 2.00e-02)
  ε = 1.0e-03:  total cover = 1.00e-03  (≤ 2ε = 2.00e-03)
  ε = 1.0e-06:  total cover = 1.00e-06  (≤ 2ε = 2.00e-06)

As ε → 0, the total cover → 0.
Therefore λ(Q ∩ [0,1]) = 0, and λ([0,1] \ Q) = 1. 
Code
# ── Part (b): Counting measure on the 1-qubit Pauli group ────────
# Here Ω = P_1 (16 elements), F = 2^Ω (power set), μ(A) = |A|/16

I2 = np.eye(2, dtype=complex)
X = np.array([[0, 1], [1, 0]], dtype=complex)
Y = np.array([[0, -1j], [1j, 0]], dtype=complex)
Z = np.array([[1, 0], [0, -1]], dtype=complex)

phases = [1, -1, 1j, -1j]
paulis_base = [I2, X, Y, Z]
labels_base = ['I', 'X', 'Y', 'Z']

# Build the full Pauli group (our sample space Ω)
pauli_group = []  # Ω
pauli_labels = []
for ph_idx, ph in enumerate(phases):
    ph_str = ['', '-', 'i', '-i'][ph_idx]
    for P, lbl in zip(paulis_base, labels_base):
        pauli_group.append(ph * P)
        pauli_labels.append(f'{ph_str}{lbl}')

assert len(pauli_group) == 16
print(f'Sample space Ω = P₁: {pauli_labels}')
print(f'|Ω| = {len(pauli_group)}')
print(f'σ-algebra F = 2^Ω (power set, i.e., ALL subsets are measurable)')
print(f'|F| = 2^16 = {2**16:,} subsets')
print()

# Counting measure μ: F → [0,1]
def mu(indices):
    """Normalized counting measure: μ(A) = |A|/|Ω|."""
    return len(indices) / 16

# --- Finite additivity: μ(A ⊔ B) = μ(A) + μ(B) ---
A = {0, 1, 2}      # {I, X, Y}
B = {5, 6, 7, 8}   # some disjoint subset
assert A.isdisjoint(B), 'A and B must be disjoint'
lhs = mu(A | B)
rhs = mu(A) + mu(B)
print(f'Finite additivity test:')
print(f'  A = {[pauli_labels[i] for i in A]}')
print(f'  B = {[pauli_labels[i] for i in B]}')
print(f'  μ(A ⊔ B) = {lhs:.4f}')
print(f'  μ(A) + μ(B) = {mu(A):.4f} + {mu(B):.4f} = {rhs:.4f}')
assert abs(lhs - rhs) < 1e-15
print(f'  Equal')
Sample space Ω = P₁: ['I', 'X', 'Y', 'Z', '-I', '-X', '-Y', '-Z', 'iI', 'iX', 'iY', 'iZ', '-iI', '-iX', '-iY', '-iZ']
|Ω| = 16
σ-algebra F = 2^Ω (power set, i.e., ALL subsets are measurable)
|F| = 2^16 = 65,536 subsets

Finite additivity test:
  A = ['I', 'X', 'Y']
  B = ['iI', '-X', '-Y', '-Z']
  μ(A ⊔ B) = 0.4375
  μ(A) + μ(B) = 0.1875 + 0.2500 = 0.4375
  Equal
Code
# --- Left-invariance: μ(gA) = μ(A) for ALL g ∈ Ω = P₁ ---

def mat_eq(M1, M2):
    return np.allclose(M1, M2)

def find_index(M, group):
    """Find the index of matrix M in the group list."""
    for i, g in enumerate(group):
        if mat_eq(M, g):
            return i
    raise ValueError('Matrix not found in group')

# Test with several subsets of different sizes
test_subsets = [
    {0, 3},           # {I, -I}
    {0, 1, 2, 3},     # {I, X, Y, Z}
    {4, 5, 6, 7},     # {-I, -X, -Y, -Z}
    {0, 1, 2, 3, 4, 5, 6, 7},  # half the group
]

print('Left-invariance: μ(gA) = μ(A) for every g ∈ Ω')
print('-' * 55)
all_passed = True
for subset_idx, A_indices in enumerate(test_subsets):
    A_mats = [pauli_group[i] for i in A_indices]
    mu_A = mu(A_indices)

    for g_idx in range(16):
        g = pauli_group[g_idx]
        gA = [g @ a for a in A_mats]
        gA_indices = {find_index(m, pauli_group) for m in gA}

        if len(gA_indices) != len(A_indices) or abs(mu(gA_indices) - mu_A) > 1e-15:
            print(f'  FAIL: g={pauli_labels[g_idx]}, |A|={len(A_indices)}')
            all_passed = False
            break

    print(f'  Subset {subset_idx+1} (|A|={len(A_indices)}): '
          f'μ(gA) = μ(A) = {mu_A:.4f} for all 16 elements of Ω ')

assert all_passed
print('\nLeft-invariance verified for all test subsets. ')
Left-invariance: μ(gA) = μ(A) for every g ∈ Ω
-------------------------------------------------------
  Subset 1 (|A|=2): μ(gA) = μ(A) = 0.1250 for all 16 elements of Ω 
  Subset 2 (|A|=4): μ(gA) = μ(A) = 0.2500 for all 16 elements of Ω 
  Subset 3 (|A|=4): μ(gA) = μ(A) = 0.2500 for all 16 elements of Ω 
  Subset 4 (|A|=8): μ(gA) = μ(A) = 0.5000 for all 16 elements of Ω 

Left-invariance verified for all test subsets. 
Code
# ── Part (c): Vitali argument - numerical illustration ────────────
# We cannot construct V computationally (it requires the axiom of
# choice on uncountably many equivalence classes), but we can
# demonstrate the logical structure of the contradiction.

print('Vitali argument: numerical illustration of the contradiction')
print('=' * 60)
print()
print('Setup: Ω = [0,1), F = 2^Ω (ALL subsets), μ translation-invariant.')
print('If μ(V) = c for some c ≥ 0, then:')
print('  1 = μ(Ω) = μ([0,1)) = Σ_{q ∈ Q ∩ [0,1)} μ(V+q) = Σ_q c')
print()

n_rational_list = [10, 100, 1000, 10000]

print('Checking partial sums for various c:')
print('-' * 60)
print(f'{"c":>12s}  {"N terms":>10s}  {"Partial sum":>15s}  {"= 1?":>6s}')
print('-' * 60)

for c in [0.0, 1e-4, 1e-3, 0.01, 0.1]:
    for N in n_rational_list:
        partial = c * N
        eq1 = '→ 0' if c == 0 else ('→ ∞' if partial > 10 else f'{partial:.4f}')
        print(f'{c:12.1e}  {N:10d}  {eq1:>15s}  {"":>6s}')
    print()

print('Conclusion: no c ≥ 0 makes Σ_q c = 1.')
print('A measure space (Ω, 2^Ω, μ) with these axioms is impossible.')
print('Resolution: replace F = 2^Ω with the Borel σ-algebra B(Ω),')
print('which excludes pathological non-measurable sets like V. ')
Vitali argument: numerical illustration of the contradiction
============================================================

Setup: Ω = [0,1), F = 2^Ω (ALL subsets), μ translation-invariant.
If μ(V) = c for some c ≥ 0, then:
  1 = μ(Ω) = μ([0,1)) = Σ_{q ∈ Q ∩ [0,1)} μ(V+q) = Σ_q c

Checking partial sums for various c:
------------------------------------------------------------
           c     N terms      Partial sum    = 1?
------------------------------------------------------------
     0.0e+00          10              → 0        
     0.0e+00         100              → 0        
     0.0e+00        1000              → 0        
     0.0e+00       10000              → 0        

     1.0e-04          10           0.0010        
     1.0e-04         100           0.0100        
     1.0e-04        1000           0.1000        
     1.0e-04       10000           1.0000        

     1.0e-03          10           0.0100        
     1.0e-03         100           0.1000        
     1.0e-03        1000           1.0000        
     1.0e-03       10000          10.0000        

     1.0e-02          10           0.1000        
     1.0e-02         100           1.0000        
     1.0e-02        1000          10.0000        
     1.0e-02       10000              → ∞        

     1.0e-01          10           1.0000        
     1.0e-01         100          10.0000        
     1.0e-01        1000              → ∞        
     1.0e-01       10000              → ∞        

Conclusion: no c ≥ 0 makes Σ_q c = 1.
A measure space (Ω, 2^Ω, μ) with these axioms is impossible.
Resolution: replace F = 2^Ω with the Borel σ-algebra B(Ω),
which excludes pathological non-measurable sets like V. 

Takeaway

Countable additivity forces \(\mathbb{Q}\cap[0,1]\) to have Lebesgue measure zero even though it is dense, and it makes the counting measure on a finite group both additive and left-invariant. The Vitali set shows that no translation-invariant probability measure can act on all subsets of \([0,1)\), so the Haar measure on \(U(D)\) must live on the Borel σ-algebra.


7. Summary and Connection to the Haar Measure

Property Lebesgue on \(\mathbb{R}\) Counting on \(\mathcal{P}_1\) Haar on \(U(D)\)
\(\Omega\) (sample space) \(\mathbb{R}\) \(\{g_1, \ldots, g_{16}\}\) \(U(D)\)
\(\mathcal{F}\) (σ-algebra) \(\mathcal{B}(\mathbb{R})\) (Borel) \(2^{\mathcal{P}_1}\) (power set) \(\mathcal{B}(U(D))\) (Borel)
\(\mu\) (measure) \(\lambda\) (length) \(|A|/16\) (counting) \(\mu_{\text{Haar}}\)
What ‘measurable’ means \(A \in \mathcal{B}(\mathbb{R})\) Any \(A \subseteq \mathcal{P}_1\) \(A \in \mathcal{B}(U(D))\)
Invariance Translation Left/right multiplication Left/right multiplication
\(\mu(\Omega)\) \(\infty\) (σ-finite) \(1\) (probability) \(1\) (probability)
Non-measurable sets? Yes (Vitali) No (finite → power set works) Yes (analogous to Vitali)

The Haar measure on \(U(D)\) is the direct generalization of both: it assigns a “volume” to Borel subsets of the unitary group in a way that is invariant under multiplication by any fixed unitary. The Lebesgue measure provides the translation-invariance intuition; the counting measure provides the group-invariance intuition. The Vitali argument shows why we must restrict to the Borel σ-algebra \(\mathcal{B}(U(D))\) rather than attempting to measure all subsets of \(U(D)\).

References

  • Mele, Introduction to Haar Measure Tools in Quantum Information: A Beginner’s Tutorial, Quantum (2024). doi
  • Ledoux, The concentration of measure phenomenon, American Mathematical Society (2001).
  • Płodzień, Information Scrambling, Quantum Chaos, and Haar-Random States, lecture notes (2025). arXiv:2511.14397