Bench / mcmc
Why retaining one coordinate and conditionally resampling the other is invariant
Markov Chain Monte Carlo / Discrete Sampling · natural-language: L3 / lean: L2 (author-assigned; calibration pending)
Why this difficulty?
The formal task is a short but semantic kernel-composition/disintegration calculation (L2). The prose task additionally audits finite versus probability measures, conditional null-fiber representatives and a concrete failure of convergence from other starts (L3).
Editorial review and exact formal-coverage boundary
AI editorial review accepted after a separately reviewed correction. This is not canonical theorem publication, full Lean coverage or empirical difficulty calibration.
- The finite-state counterexample and persistent-discrepancy calculation remain prose rather than additional Lean conclusions. The formal target asserts only invariance of the supplied finite target.
- This review provides no irreducibility, uniqueness, convergence or mixing theorem, no compiler execution receipt, and no empirical calibration, publication or whole-Goal completion certification.
Content-bound review status and evidence hashes · Independent reports and frozen inputs. Historical rejected wording is audit material, not training gold.
Assumptions and conventions
- \(α\) and \(β\) are measurable spaces; \(β\) is nonempty and standard Borel. \(μ\) is any finite nonnegative measure on \(α\times β\), including the zero measure. No standard-Borel or nonempty assumption is imposed on \(α\).
- Let \(μ_{1}\) be the first marginal and \(κ(a,db)\) a selected measurable regular conditional Markov kernel for the second coordinate given the first. You may use the existing finite-measure disintegration identity \[\mu(da,db)=\mu_1(da)\kappa(a,db).\] Its conditional characterization is only \(μ_{1}\)-almost everywhere; the selected version has mass one at every input.
- The actual update retains a and resamples b: \[K((a,b),d(a',b'))=\delta_a(da')\kappa(a,db').\] Invariant means the measure equality \(μK=μ\), not convergence from every starting measure.
Natural-language question
Prove \(μK=μ\) by identifying the measure after projecting to the retained coordinate and after applying the product kernel. Explain the role of measurability, the finite-measure disintegration, and the chosen conditional version on null fibers. Must \(μ\) be a probability measure? Give a finite-state example showing why this invariance result alone does not imply convergence from another initial probability law.
Reference mathematical proof
The deterministic projection \((a,b)\mapsto a\) is measurable. Pushing \(μ\) through it gives exactly its first marginal \(\mu_1=(\mathrm{fst})_\#\mu\). This assertion uses the actual input \(μ\), not an arbitrary starting law with a different first marginal.
The product kernel \(a\mapsto δₐ⊗κ(a,·)\) is measurable because it is the product of the identity kernel and the measurable conditional kernel. Composition with the deterministic projection gives K. Associativity of kernel/measure composition yields \[\mu K=\mu_1(\mathrm{id}\times\kappa)=\mu_1\otimes\kappa.\] The last expression is a measure–kernel composition product, not the independent product of \(μ_{1}\) and a fixed marginal.
The supplied finite-measure disintegration identity now gives \[\mu K=\mu_1\otimes\kappa=\mu.\] It is justified by the standard-Borel, nonempty \(β\) and finite \(μ\) interface. No density, positivity, normalization to mass one or division by a marginal density is required. For \(μ=0\) both sides are zero; this is invariant as a finite measure, not a probability law.
Conditional versions agree in their prescribed conditional meaning only for \(μ_{1}\)-almost every a. Replacing them on a \(μ_{1}\)-null set does not change the integrated identity. The chosen global Markov version still yields a legitimate mass-one update there, but no claim about conditional support or convergence from such exceptional starting states follows.
For lack of convergence take \(α=\{0,1\}\), \(β=\{∗\}\) with discrete measurable structures and \(\mu=(\tfrac12\delta_0+\tfrac12\delta_1)\otimes\delta_\ast\). The update never changes either coordinate, so K is the identity kernel. Starting from \(\rho=\delta_{(0,\ast)}\), \[\begin{gathered}\rho K^n=\rho,\\ d_{\mathrm{TV}}(\rho K^n,\mu)=\tfrac12\quad(n\ge0).\end{gathered}\] Thus the actual invariant target does not imply uniqueness, irreducibility, mixing or convergence from a different first marginal.
How the Lean proof follows these steps
The context supplies only the exact existing heatBathSnd definition, not its invariance theorem or Markov instance. The reference unfolds that kernel in the measure equality, reassociates composition, rewrites deterministic composition as the first pushforward and the identity-product composition as a composition product, then calls ConditionalResampling.fst_compProd_condDistrib_snd_eq_self. This is the actual finite-target invariance theorem, not an assumed stationarity premise. Its conclusion does not separately formalize the prose's identity-kernel counterexample or a mixing assertion.
/- SamplingOptimisationGeometryBench public-dev reference.
Reuses the existing project proof; retain LICENSE and NOTICE. -/
import AutoSamplingTheory.TechnicalLemmas.Probability.ConditionalResampling
import Mathlib.Probability.Kernel.Invariance
open MeasureTheory ProbabilityTheory
namespace AutoSamplingTheory.TechnicalLemmas.Probability.HeatBath
noncomputable def heatBathSnd {α β : Type*} [MeasurableSpace α] [MeasurableSpace β]
[StandardBorelSpace β] [Nonempty β] (μ : Measure (α × β)) [IsFiniteMeasure μ] :
Kernel (α × β) (α × β) :=
(Kernel.id ×ₖ condDistrib Prod.snd Prod.fst μ) ∘ₖ
Kernel.deterministic Prod.fst measurable_fst
end AutoSamplingTheory.TechnicalLemmas.Probability.HeatBath
open AutoSamplingTheory.TechnicalLemmas.Probability.HeatBath
open AutoSamplingTheory.TechnicalLemmas.Probability
variable {α β : Type*} [MeasurableSpace α] [MeasurableSpace β]
[StandardBorelSpace β] [Nonempty β]
example (μ : Measure (α × β)) [IsFiniteMeasure μ] :
(heatBathSnd μ).Invariant μ := by
change ((Kernel.id ×ₖ condDistrib Prod.snd Prod.fst μ) ∘ₖ
Kernel.deterministic Prod.fst measurable_fst) ∘ₘ μ = μ
rw [← Measure.comp_assoc, Measure.deterministic_comp_eq_map,
← Measure.compProd_eq_comp_prod]
exact ConditionalResampling.fst_compProd_condDistrib_snd_eq_self
Assessment rubric · 4 points
- Identifies the measurable deterministic projection and its exact pushforward \(μ_{1}\) under the actual input law. (1 point)
- Expresses the actual kernel as a deterministic composition and uses associativity and the measure–kernel product, not an independent product, to obtain \(μ_{1}⊗κ\). (1 point)
- Applies the finite standard-Borel disintegration with the precise \(β\) hypotheses, permits zero \(μ\) and distinguishes global Markov normalization from almost-everywhere conditional support claims. (1 point)
- Gives any valid finite-state instance of this conditional-resampling kernel that preserves its target yet fails to converge from a different initial probability law, with a correct persistent discrepancy calculation; the reference identity-kernel example and TV=1/2 are sufficient, not required. (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 AutoSamplingTheory.TechnicalLemmas.Probability.ConditionalResampling
import Mathlib.Probability.Kernel.Invariance
open MeasureTheory ProbabilityTheory
namespace AutoSamplingTheory.TechnicalLemmas.Probability.HeatBath
noncomputable def heatBathSnd {α β : Type*} [MeasurableSpace α] [MeasurableSpace β]
[StandardBorelSpace β] [Nonempty β] (μ : Measure (α × β)) [IsFiniteMeasure μ] :
Kernel (α × β) (α × β) :=
(Kernel.id ×ₖ condDistrib Prod.snd Prod.fst μ) ∘ₖ
Kernel.deterministic Prod.fst measurable_fst
end AutoSamplingTheory.TechnicalLemmas.Probability.HeatBath
open AutoSamplingTheory.TechnicalLemmas.Probability.HeatBath
open AutoSamplingTheory.TechnicalLemmas.Probability
variable {α β : Type*} [MeasurableSpace α] [MeasurableSpace β]
[StandardBorelSpace β] [Nonempty β]
example (μ : Measure (α × β)) [IsFiniteMeasure μ] :
(heatBathSnd μ).Invariant μ := by
-- Replace this comment with your proof.
Reference Lean and explanation
The context supplies only the exact existing heatBathSnd definition, not its invariance theorem or Markov instance. The reference unfolds that kernel in the measure equality, reassociates composition, rewrites deterministic composition as the first pushforward and the identity-product composition as a composition product, then calls ConditionalResampling.fst_compProd_condDistrib_snd_eq_self. This is the actual finite-target invariance theorem, not an assumed stationarity premise. Its conclusion does not separately formalize the prose's identity-kernel counterexample or a mixing assertion.
/- SamplingOptimisationGeometryBench public-dev reference.
Reuses the existing project proof; retain LICENSE and NOTICE. -/
import AutoSamplingTheory.TechnicalLemmas.Probability.ConditionalResampling
import Mathlib.Probability.Kernel.Invariance
open MeasureTheory ProbabilityTheory
namespace AutoSamplingTheory.TechnicalLemmas.Probability.HeatBath
noncomputable def heatBathSnd {α β : Type*} [MeasurableSpace α] [MeasurableSpace β]
[StandardBorelSpace β] [Nonempty β] (μ : Measure (α × β)) [IsFiniteMeasure μ] :
Kernel (α × β) (α × β) :=
(Kernel.id ×ₖ condDistrib Prod.snd Prod.fst μ) ∘ₖ
Kernel.deterministic Prod.fst measurable_fst
end AutoSamplingTheory.TechnicalLemmas.Probability.HeatBath
open AutoSamplingTheory.TechnicalLemmas.Probability.HeatBath
open AutoSamplingTheory.TechnicalLemmas.Probability
variable {α β : Type*} [MeasurableSpace α] [MeasurableSpace β]
[StandardBorelSpace β] [Nonempty β]
example (μ : Measure (α × β)) [IsFiniteMeasure μ] :
(heatBathSnd μ).Invariant μ := by
change ((Kernel.id ×ₖ condDistrib Prod.snd Prod.fst μ) ∘ₖ
Kernel.deterministic Prod.fst measurable_fst) ∘ₘ μ = μ
rw [← Measure.comp_assoc, Measure.deterministic_comp_eq_map,
← Measure.compProd_eq_comp_prod]
exact ConditionalResampling.fst_compProd_condDistrib_snd_eq_self
No current trusted-reference compiler receipt recorded in this build.
What this does—and does not—verify
This proves one actual conditional-resampling kernel preserves its finite joint target. It does not establish reversibility, irreducibility, uniqueness, convergence, a mixing rate, a generator-domain theorem or the Gibbs law of a continuous-time process. Conditional disintegration is allowed background, not reproved by this short task. The NL finite-state counterexample is not a separate Lean conclusion.
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 QA over the existing Samplinglib-owned HeatBath kernel and its finite-measure ConditionalResampling interface. Uses Mathlib's selected regular conditional distribution, kernel composition and Invariant definition. The discrete example specializes this general measurable-space result; this is not the earlier atomic-detailed-balance task or a new wrapper. No paper text, external dataset or restricted index is reproduced.
Exact local source and full context · Locate the owning module (declaration not yet indexed in this graph)
AutoSamplingTheory.TechnicalLemmas.Probability.HeatBath.heatBathSnd_invariant
ASTIS definitions / proof calls
AutoSamplingTheory.TechnicalLemmas.Probability.ConditionalResampling.fst_compProd_condDistrib_snd_eq_self
Mathlib facts / definitions
ProbabilityTheory.Kernel.InvariantMeasureTheory.Measure.comp_assocMeasureTheory.Measure.deterministic_comp_eq_mapMeasureTheory.Measure.compProd_eq_comp_prodProbabilityTheory.compProd_map_condDistrib
Binding SHA-256: 3d72820e315cae6cebacdbed3bc8475fb4479d4a4a6cc7c302f4d534b54fe173