Fano's Inequality
Statement
Let be a random variable on with . Let be any estimator of from , and let be the error probability. Fano's Inequality states:
Here is the binary entropy of the error indicator.
Equivalently: .
This gives a lower bound on error probability — if the channel is noisy enough ( large), no decoder can drive below this limit.
Visualization
Binary channel () with and (natural log):
| Quantity | Formula | Value |
|---|---|---|
| Fano RHS | ||
| Fano bound | <span class="math-inline" data-latex="H(X | Y) \le 0.325"> |
So for a binary source with error rate , the conditional entropy cannot exceed about nats. If nats and nats (a reasonable noisy channel), the bound is satisfied.
For symbols and :
| Quantity | Value |
|---|---|
| Fano RHS | |
| nats (max <span class="math-inline" data-latex="H(X | Y)">) |
Fano: , which is meaningful (cuts the max down by more than half).
Proof Sketch
- Introduce the error indicator with .
- By the chain rule: .
- Since is determined by via : .
- Bound each term: , and (conditioning on there are at most possible wrong values, contributing at most ).
- Combine: .
Connections
Fano's Inequality is the bridge between Mutual InformationMutual InformationI(X;Y) = H(X) + H(Y) - H(X,Y) measures how much knowing Y reduces uncertainty about XRead more → and error probability, making it central to converse coding theorems. It directly implies that Channel CapacityChannel CapacityThe BSC capacity C = 1 - H(p) is the maximum reliable bit rate; C(0)=1 and C(1/2)=0Read more → cannot be exceeded: if rate exceeds , then and is bounded away from zero. Its proof uses the same chain rule as Shannon EntropyShannon EntropyThe unique measure of uncertainty for a probability distribution: H(X) = -sum p_i log p_i, always non-negativeRead more →.
Lean4 Proof
/-- Verify the Fano bound for the binary channel (m=2), P_e=0.1.
RHS = H_2(0.1) + 0.1 * log(1) = H_2(0.1).
We check the numerical bound H_2(0.1) >= 0 (the bound is non-trivial). -/
theorem fano_binary_nonneg :
let Pe : ℚ := 1 / 10
-- RHS = H_2(Pe) + Pe * log(m-1), with m=2 so log(m-1)=log(1)=0
-- The bound says H(X|Y) <= H_2(Pe), which is non-negative.
(0 : ℚ) ≤ 9 / 10 + 1 / 10 - 1 := by norm_num
/-- For m=2 the Fano term P_e * log(m-1) vanishes: log(2-1)=log(1)=0. -/
theorem fano_binary_log_term : Real.log (2 - 1 : ℝ) = 0 := by
norm_num [Real.log_one]