Piecewise measure-preserving maps, and coordinate swaps with a pi factor #
Category: 1-Mathlib (CSD-free upstream candidates).
Three reusable measure lemmas the record layer's swap witness needs, stated with no CSD content:
measurePreserving_of_partition— a map agreeing on each piece of a countable measurable partition with a measure-preserving map that fixes that piece (as a preimage) is itself measure-preserving. The natural tool for piecewise-defined dynamics such as record-triggered interactions.Measure.map_eval_pi'— the pushforward of a finite product of probability measures under a coordinate evaluation is that coordinate's measure.measurePreserving_swapSlot— exchanging an external factor with one coordinate of apifactor (all factors carrying the same measure) preserves the product measure. The map(s, a) ↦ (a j, update a j s)is an involutive measurable map ofα × (ι → α), proved measure-preserving by conjugating throughpiEquivPiSubtypeProd (· = j): thepifactor splits as (slotj) × (the rest) and the swap becomesProd.swapon the first two factors.
Provenance #
Staged as upstream Mathlib material; no CsdLean4-namespace content.
A map defined piecewise on a countable measurable partition is measurable, when each piece's
map is. Companion to measurePreserving_of_partition.
A piecewise measure-preserving map is measure-preserving. If {A k} is a countable
measurable partition, each T k preserves μ and fixes its own piece as a preimage
(T k ⁻¹' A k = A k), and T agrees with T k on A k, then T preserves μ.
Evaluation pushes a finite product of probability measures to its factor.
The slot-swap map (s, a) ↦ (a j, update a j s) on α × (ι → α). An involution.
Equations
- MeasureTheory.swapSlot j x = (x.2 j, Function.update x.2 j x.1)
Instances For
Inserting a value back into its removed slot is Function.update.
Swapping an external factor with one pi coordinate preserves the product measure, when
every factor carries the same measure. Stated for Fin K (the record layer's index type); proved by
splitting the pi factor at the slot with piFinSuccAbove, under which the swap becomes
Prod.swap on the first two factors.