/- SamplingOptimisationGeometryBench public-dev reference. Reuses the existing project proof; retain LICENSE and NOTICE. -/ import Mathlib.MeasureTheory.Measure.Prod open MeasureTheory namespace AutoSamplingTheory.TechnicalLemmas.Measure.Transport def IsCoupling {α β : Type*} [MeasurableSpace α] [MeasurableSpace β] (γ : Measure (α × β)) (μ : Measure α) (ν : Measure β) : Prop := γ.fst = μ ∧ γ.snd = ν end AutoSamplingTheory.TechnicalLemmas.Measure.Transport open AutoSamplingTheory.TechnicalLemmas.Measure.Transport example {α β : Type*} [MeasurableSpace α] [MeasurableSpace β] {γ : Measure (α × β)} {μ : Measure α} {ν : Measure β} [IsProbabilityMeasure μ] (hγ : IsCoupling γ μ ν) : IsProbabilityMeasure γ := by constructor rw [← Measure.fst_univ, hγ.1, measure_univ]