Construct a heat-bath update at one coordinate
AutoSamplingTheory.TechnicalLemmas.Probability.CoordinateHeatBath.heatBath · def · Teaching coverage
Statement
For every finite target measure μ on a finite dependent product of measurable coordinate spaces and every selected index i whose coordinate type is nonempty Standard Borel, define heatBath X μ i by a measurable change of coordinates: retain all coordinates except i, resample coordinate i with the existing one-block heat-bath kernel for the transformed target, and map the output back to the original state space. No measurable-singleton assumptions are required for this construction.
All objects and hypotheses
- {n : ℕ} — n is an arbitrary natural number, so Fin (n+1) is a nonempty finite index set. Individual coordinate spaces need not be finite.
- (X : Fin (n + 1) → Type*) — X is a possibly dependent family: coordinate j may have its own type X j. A state x is a function choosing x j : X j for every j.
- [∀ j, MeasurableSpace (X j)] — Each coordinate is measurable; the full and retained products use their product sigma-algebras.
- (μ : Measure (∀ j, X j)) [IsFiniteMeasure μ] — μ is any finite measure on the full state space. It may have zero mass or be unnormalized.
- (i : Fin (n + 1)) — i is a fixed selected coordinate, not a randomly drawn index.
- [StandardBorelSpace (X i)] [Nonempty (X i)] — Only the selected coordinate must be nonempty and Standard Borel. The other coordinates need neither condition for the construction, Markovness, or invariance.
Notation and interpretation
- S
The dependent full state space, written ∀ j, X j in Lean.
\[S=\prod_{j\in\operatorname{Fin}(n+1)}X_j\]- R_i
The retained-coordinate product. i.succAbove lists every original index except i; k is its own Fin n index.
\[R_i=\prod_{k\in\operatorname{Fin}(n)}X_{i.\operatorname{succAbove}(k)}\]- r_i
The tuple of all unselected coordinates; this is explanatory notation, not a newly introduced Lean declaration.
\[r_i(x)(k)=x(i.\operatorname{succAbove}(k))\]- e_i
MeasurableEquiv.piFinSuccAbove X i first places Xi before Ri; composing with prodComm puts retained coordinates first. e_i and its inverse are measurable.
\[e_i:S\simeq_{\mathrm{meas}}R_i\times X_i,\qquad e_i(x)=(r_i(x),x_i)\]- η_i,m_i,q_i
Pushed-forward joint target, retained marginal, and selected conditional version.
\[\eta_i=(e_i)_\#\mu,\qquad m_i=(\operatorname{fst})_\#\eta_i,\qquad q_i(r)=\operatorname{condDistrib}(\operatorname{snd}\mid\operatorname{fst};\eta_i)(r)\]- K_i
The existing public CoordinateHeatBath.heatBath X μ i; this evaluated formula uses HeatBath.heatBathSnd_apply.
\[K_i(x)=(e_i^{-1})_\#\bigl(\delta_{r_i(x)}\otimes q_i(r_i(x))\bigr)\]
- All sets used to test equality of measures are measurable unless explicitly stated otherwise.
- All measure values, reciprocals and scalar multiplications in the Lean conditional formula are in ℝ≥0∞. Integral displays of kernel probabilities denote nonnegative extended integrals, not Bochner integrals with unstated integrability hypotheses.
- The notation r_i, F_i, e_i, q_i and K_i in the teaching text is explanatory mathematical shorthand, not new public Lean definitions.
- Markovness quantifies over every input; a selected conditional version's law characterization is only marginal-a.e. unless a positive-atom/fiber theorem applies.
- Finite target mass is not probability normalization. Fin (n+1) counts sites, not states. No law is assumed to have a density.
Construction and meaning
1. Separate the selected coordinate from the retained tuple
Use Mathlib's measurable equivalence for inserting/removing one Fin-indexed coordinate. It initially returns (selected, retained); follow it by product commutation to return (retained, selected). No new proof of a splitting bijection is needed.
Corresponding Lean step
let e := (MeasurableEquiv.piFinSuccAbove X i).trans MeasurableEquiv.prodComm.
2. Express the target in split coordinates
Push μ forward along e. The measure ηi is finite. Its second coordinate is Xi, exactly the space for which Standard Borel and nonempty instances are assumed, so the existing one-block construction can be applied to ηi.
Corresponding Lean step
HeatBath.heatBathSnd (μ.map e); measurable equivalence and finite-measure map instances discharge the implicit requirements.
3. Move input and output in opposite directions
To update an original input x, use comap to evaluate the split-space kernel at e(x); then use map to push each output measure through e⁻¹. These are different operations: comap changes the input, map changes the output.
Corresponding Lean step
((HeatBath.heatBathSnd (μ.map e)).comap e e.measurable).map e.symm.
4. Read the intended transition law without adding a new theorem
The existing one-block evaluation lemma identifies the split output measure as the retained Dirac law times the selected conditional law. The construction therefore has the explanatory formula below; the public source keeps only the single heatBath definition.
Corresponding Lean step
HeatBath.heatBathSnd_apply, Kernel.comap_apply and Kernel.map_apply explain evaluation; no additional public algorithm is introduced.
Lean statement · heatBath
Temporarily reorder the state into a pair: all coordinates being kept, followed by the one coordinate being updated. Apply the already understood pair update, then undo that reordering. This lets one general construction cover different types of coordinates.
Braces mark parameters Lean can infer; square brackets request structures such as a measurable space or probability measure. Named hypotheses are mathematical premises, not facts established by this declaration. Section parameters are described in the mathematical hypotheses above; the module link retains their exact source context.
noncomputable def heatBath (μ : Measure (∀ j, X j)) [IsFiniteMeasure μ]
(i : Fin (n + 1)) [StandardBorelSpace (X i)] [Nonempty (X i)] :
Kernel (∀ j, X j) (∀ j, X j)Lean construction · heatBath
`∀ j, X j` is a dependent function type and represents one value at each coordinate. `Fin (n + 1)` records a finite nonempty set of coordinate indices, not a finite number of possible states. `e.symm` is the inverse measurable equivalence. `.comap e e.measurable` changes the input, and `.map e.symm` changes the output law. The definition is noncomputable because it inherits the selected regular conditional distribution. No claim about implementation or complexity is hidden in the construction.
Braces mark parameters Lean can infer; square brackets request structures such as a measurable space or probability measure. Named hypotheses are mathematical premises, not facts established by this declaration. Section parameters are described in the mathematical hypotheses above; the module link retains their exact source context.
noncomputable def heatBath (μ : Measure (∀ j, X j)) [IsFiniteMeasure μ]
(i : Fin (n + 1)) [StandardBorelSpace (X i)] [Nonempty (X i)] :
Kernel (∀ j, X j) (∀ j, X j) :=
let e := (MeasurableEquiv.piFinSuccAbove X i).trans MeasurableEquiv.prodComm
((HeatBath.heatBathSnd (μ.map e)).comap e e.measurable).map e.symm
/-- The coordinate update has total mass one at every input. This does not
assert conditional support on marginal-null fibers. -/Scope and omitted-condition boundaries
- These are existing source-neutral measure/kernel interfaces, not newly proved claims in this research packet. Reading source and historical tests is not a fresh Lean build or independent verification.
- Finite target measure means μ(univ) < ∞, not μ(univ) = 1; zero and finite unnormalized targets are allowed unless a positive-fiber hypothesis rules them out.
- A selected regular conditional distribution is a probability kernel at every conditioning value. Its conditional-law characterization is determined only almost everywhere under the conditioning marginal; null fibers have no asserted feasible/Gibbs-support property.
- No reversibility, irreducibility, ergodicity, convergence from a different initial law, mixing rate, random scan, scan-order correctness, executable conditional sampling or cost bound follows from these declarations alone.
Source and reuse
ASTIS parents called
Mathlib API called (external library)
- MeasurableEquiv.piFinSuccAbove
- MeasurableEquiv.prodComm
- MeasurableEquiv.trans
- ProbabilityTheory.Kernel.comap
- ProbabilityTheory.Kernel.map
- MeasureTheory.Measure.map
Mathematical sources
- Fearnhead–Nemeth–Oates–Sherlock, arXiv:2407.12751v1, §2.1.1 Component-wise updates and Gibbs moves; printed page 48 / PDF page 54 — Conditional-update motivation only; the generic finite-measure regular-conditional-law contract is not a numbered-source theorem assimilation.
- Chen–Štefankovič–Vigoda, arXiv:2307.13826v4, §1.3 Glauber dynamics/Gibbs sampler; printed/PDF page 5; support convention in §1.1 printed/PDF page 4 — Fixed-site update motivation, not full finite-binary-state algorithm or uniform-scan certification.
- Existing ASTIS declaration AutoSamplingTheory.TechnicalLemmas.Probability.CoordinateHeatBath.heatBath — Exact public declaration and proof/construction read from the local source. Line numbers are current source anchors; no new source certification or Lean build performed.
- .lake/packages/mathlib/Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean:569 — Existing imported proof/construction source, not a newly proved ASTIS theorem.
- Focused tests (consumer evidence) — Exercises nonconstant three-site Boolean updates, zero targets, a retained coordinate with indiscrete sigma-algebra, and mixture/power consumers. No new tests run.
Older frontier cells and the coordinate card say the printed copy-index repair is pending. The later positive-fiber card and source-support audit record separate acceptance of the exact one-index correction as ASTIS-REPAIR-20260908-GlauberCopyIndex. The old PositiveFiberUpdate audit remains possible-source-error for its limited page-5 evidence window. Do not overwrite that history, call the original PDF corrected, call a null-fiber start a counterexample to the positive-support source convention, or infer full source fidelity. This packet reads local evidence only; it performs no new PDF/source certification.
ASTIS prose is not a quotation or a source-equivalence certificate. Definitions and aliases are explained as constructions, not counted as new mathematical proofs.