Bench / sampling
From atomic balance to reversibility
Markov Chain Monte Carlo / Discrete Sampling · natural-language: L3 / lean: L3 (author-assigned; calibration pending)
Why this difficulty?
Coordinate two nonnegative countable expansions, justify their exchange and audit infinite/null masses; Lean also reconstructs that argument.
Editorial review and exact formal-coverage boundary
AI editorial review accepted. This is not canonical theorem publication, full Lean coverage or empirical difficulty calibration.
- The target states only reversibility, not the natural-language explanations of why division/cancellation are unnecessary or explicit counterexamples to normalization, irreducibility and convergence implications.
- No normalization, mixing, query-cost or empirical difficulty claim is formalized by this view.
Content-bound review status and evidence hashes · Independent reports and frozen inputs. Historical rejected wording is audit material, not training gold.
Assumptions and conventions
- The state space is countable, carries a measurable space, and every singleton is measurable.
- \(\mu\) is a nonnegative measure and \(K\) is a measurable kernel; neither is assumed finite or normalized.
- For every pair \(x,y\), \(\mu(\{x\})K(x,\{y\})=\mu(\{y\})K(y,\{x\})\) in the extended nonnegative reals.
Natural-language question
Prove that for all measurable sets A,B, \(\int_A K(x,B)\,d\mu(x)=\int_B K(y,A)\,d\mu(y)\). Explain why infinite total mass and zero-mass states cause no cancellation problem. Does this imply convergence to a probability law?
Reference mathematical proof
On a countable measurable-singleton space, expand each restricted integral and each kernel mass into singleton masses. The left side becomes \[\sum_{x\in A}\sum_{y\in B}K(x,\{y\})\mu(\{x\}).\] These sums take values in \([0,\infty]\).
Apply the assumed balance identity to each summand. Nonnegativity permits exchanging the two sums even when the result is infinite: \[\sum_{x\in A}\sum_{y\in B}\mu(\{y\})K(y,\{x\})=\sum_{y\in B}K(y,A)\mu(\{y\}).\]
Recognize the last expression as the right restricted integral. No division by a singleton mass, subtraction of infinities, or signed Fubini argument occurred. A zero atom needs no special conditional version for this flux identity.
Reversibility alone proves neither normalization, irreducibility, convergence, nor a mixing or query-cost bound. Those require separate assumptions and arguments.
How the Lean proof follows these steps
The binders in square brackets supply the measurable and countable structures. The hypothesis h is pairwise flux balance. The proof expands countable lintegrals, rewrites kernel masses as sums, then uses ENNReal.tsum_comm and h. The final proposition is Mathlib's kernel reversibility, not a mixing theorem.
/- SamplingOptimisationGeometryBench public-dev reference.
Reuses the existing project proof; retain LICENSE and NOTICE. -/
import Mathlib.Probability.Kernel.Invariance
import Mathlib.MeasureTheory.Integral.Lebesgue.Countable
open MeasureTheory ProbabilityTheory
open scoped ENNReal
example {α : Type*} [MeasurableSpace α]
[Countable α] [MeasurableSingletonClass α] (κ : Kernel α α) (μ : Measure α)
(h : ∀ x y, μ {x} * κ x {y} = μ {y} * κ y {x}) :
Kernel.IsReversible κ μ := by
intro A B _ _
have hm (ν : Measure α) (s : Set α) : ν s = ∑' y : s, ν {(y : α)} := by
simpa using (lintegral_countable (μ := ν) (fun _ => 1) (Set.to_countable s))
rw [lintegral_countable _ (Set.to_countable A),
lintegral_countable _ (Set.to_countable B)]
conv_lhs => enter [1, x]; rw [hm (κ x) B, ← ENNReal.tsum_mul_right]
conv_rhs => enter [1, y]; rw [hm (κ y) A, ← ENNReal.tsum_mul_right]
rw [ENNReal.tsum_comm]
apply tsum_congr
intro y
apply tsum_congr
intro x
simpa only [mul_comm] using h (x : α) (y : α)
Assessment rubric · 4 points
- States the countability and measurable-singleton hypotheses and uses nonnegative extended-valued sums. (1 point)
- Expands both the outer restricted integral and the inner kernel mass. (1 point)
- Uses balance termwise and justifies sum exchange without dividing by masses or subtracting infinities. (1 point)
- Separates reversibility from normalization, convergence and computational cost. (1 point)
Lean question
Keep the target and context fixed; replace the comment slot with your proof. Ancestor libraries are allowed, but the target module is not imported directly.
Show fixed Lean task
/- SamplingOptimisationGeometryBench public-dev reference.
Reuses the existing project proof; retain LICENSE and NOTICE. -/
import Mathlib.Probability.Kernel.Invariance
import Mathlib.MeasureTheory.Integral.Lebesgue.Countable
open MeasureTheory ProbabilityTheory
open scoped ENNReal
example {α : Type*} [MeasurableSpace α]
[Countable α] [MeasurableSingletonClass α] (κ : Kernel α α) (μ : Measure α)
(h : ∀ x y, μ {x} * κ x {y} = μ {y} * κ y {x}) :
Kernel.IsReversible κ μ := by
-- Replace this comment with your proof.
Reference Lean and explanation
The binders in square brackets supply the measurable and countable structures. The hypothesis h is pairwise flux balance. The proof expands countable lintegrals, rewrites kernel masses as sums, then uses ENNReal.tsum_comm and h. The final proposition is Mathlib's kernel reversibility, not a mixing theorem.
/- SamplingOptimisationGeometryBench public-dev reference.
Reuses the existing project proof; retain LICENSE and NOTICE. -/
import Mathlib.Probability.Kernel.Invariance
import Mathlib.MeasureTheory.Integral.Lebesgue.Countable
open MeasureTheory ProbabilityTheory
open scoped ENNReal
example {α : Type*} [MeasurableSpace α]
[Countable α] [MeasurableSingletonClass α] (κ : Kernel α α) (μ : Measure α)
(h : ∀ x y, μ {x} * κ x {y} = μ {y} * κ y {x}) :
Kernel.IsReversible κ μ := by
intro A B _ _
have hm (ν : Measure α) (s : Set α) : ν s = ∑' y : s, ν {(y : α)} := by
simpa using (lintegral_countable (μ := ν) (fun _ => 1) (Set.to_countable s))
rw [lintegral_countable _ (Set.to_countable A),
lintegral_countable _ (Set.to_countable B)]
conv_lhs => enter [1, x]; rw [hm (κ x) B, ← ENNReal.tsum_mul_right]
conv_rhs => enter [1, y]; rw [hm (κ y) A, ← ENNReal.tsum_mul_right]
rw [ENNReal.tsum_comm]
apply tsum_congr
intro y
apply tsum_congr
intro x
simpa only [mul_comm] using h (x : α) (y : α)
No current trusted-reference compiler receipt recorded in this build.
What this does—and does not—verify
The Lean target covers the flux identity. The explanatory non-implications are assessed in the natural-language track, not certified by that Lean target.
Existing library mathematics reused; no new mathematical leaf or paper-completion credit. The editorial panel records the exact current review scope and remaining unformalized explanation.
Sources, graph location and dependencies
Original exercise over the existing Samplinglib declaration; not a quotation of a paper theorem.
Exact local source and full context · Locate the owning module (declaration not yet indexed in this graph)
AutoSamplingTheory.TechnicalLemmas.Probability.KernelReversibility.isReversible_of_singleton_balance
ASTIS definitions / proof calls
Mathlib facts / definitions
lintegral_countableENNReal.tsum_mul_rightENNReal.tsum_commtsum_congr
Binding SHA-256: ac978a2c81f53d2c0ce45bb253fdafd93de190bb9ff64e1eab954ea9e29249b8