OAI/Analysis/Brenier/TriangularSampling.lean
22 declarations, 0 contain sorry, 0 declared as axioms
- theorem
OAI.Problem358.measurePreserving_finSnocline 12Source documentation
Appending the last coordinate identifies a finite product law with a product of its prefix law and its last-coordinate law.
theorem measurePreserving_finSnoc {X : Type*} [MeasurableSpace X] (n : ℕ) (η : Measure X) [SigmaFinite η] : MeasurePreserving (fun p : (Fin n → X) × X => Fin.snoc p.1 p.2) ((Measure.pi fun _ : Fin n => η).prod η) (Measure.pi fun _ : Fin (n + 1) => η) := by … - theorem
OAI.Problem358.measurePreserving_finInitLastline 26Source documentation
Splitting the prefix and last coordinate preserves a finite product law.
theorem measurePreserving_finInitLast {X : Type*} [MeasurableSpace X] (n : ℕ) (η : Measure X) [SigmaFinite η] : MeasurePreserving (fun x : Fin (n + 1) → X => (Fin.init x, x (Fin.last n))) (Measure.pi fun _ : Fin (n + 1) => η) ((Measure.pi fun _ : Fin n => η).prod η) := by … - theorem
OAI.Problem358.TriangularSampling.map_prod_eq_compProdline 56Source documentation
A measurable triangular sampler has the prescribed dependent-product law when its prefix has the prescribed law and its last coordinate has the prescribed conditional law almost everywhere.
theorem map_prod_eq_compProd (μ : Measure A) (η : Measure B) (ρ : Measure X) (κ : Kernel X Y) [SFinite μ] [SFinite η] [SFinite ρ] [IsSFiniteKernel κ] (F : A → X) (G : A × B → Y) (hF : Measurable F) (hG : Measurable G) (hbase : Measure.map F μ = ρ) (hfiber : ∀ᵐ a ∂μ, Measure.map (fun b => G (a, b)) η = κ (F a)) : Measure.map (fun p : A × B => (F p.1, G p)) (μ.prod η) = ρ ⊗ₘ κ := by … - theorem
OAI.Problem358.TriangularSampling.map_init_last_piline 82Source documentation
Splitting a finite product at its last coordinate preserves its product law.
theorem map_init_last_pi {Z : Type*} [MeasurableSpace Z] (η : Measure Z) [SigmaFinite η] (n : ℕ) : Measure.map (fun s : Fin (n + 1) → Z => (Fin.init s, s (Fin.last n))) (Measure.pi (fun _ : Fin (n + 1) => η)) = (Measure.pi (fun _ : Fin n => η)).prod η := by … - theorem
OAI.Problem358.TriangularSampling.map_snoc_pi_eqline 93Source documentation
The last-coordinate induction step for the law of a finite triangular sampler.
theorem map_snoc_pi_eq (n : ℕ) (η : Measure B) [SigmaFinite η] (ρ : Measure (Fin n → Y)) (κ : Kernel (Fin n → Y) Y) [SFinite ρ] [IsSFiniteKernel κ] (F : (Fin n → B) → (Fin n → Y)) (G : (Fin n → B) × B → Y) (hF : Measurable F) (hG : Measurable G) (hbase : Measure.map F (Measure.pi (fun _ : Fin n => η)) = ρ) (hfiber : ∀ᵐ a ∂Measure.pi (fun _ : Fin n => η), Measure.map (fun b => G (a, b)) η = κ (F a)) : Measure.map (fun s : Fin (n + 1) → B => Fin.snoc (F (Fin.init s)) (G (Fin.init s, s (Fin.last n)))) (Measure.pi (fun _ : Fin (n + 1) => η)) = … - theorem
OAI.Problem358.TriangularSampling.map_sample_pi_eqline 150Source documentation
Successive conditional quantiles sample a consistent family of prefix laws. The conditional law is needed only almost everywhere under the prescribed prefix law, so values of a quantile outside its valid prefix domain are irrelevant.
theorem map_sample_pi_eq (Q : TriangularRecursion.ConditionalFamily) (hQ : ∀ n, Measurable (fun p : (Fin n → ℝ) × ℝ => Q n p.1 p.2)) (η : Measure ℝ) [SigmaFinite η] (ρ : (n : ℕ) → Measure (Fin n → ℝ)) (κ : (n : ℕ) → Kernel (Fin n → ℝ) ℝ) [∀ n, SFinite (ρ n)] [∀ n, IsSFiniteKernel (κ n)] (hzero : ρ 0 = Measure.pi (fun _ : Fin 0 => η)) (hstep : ∀ n, ρ (n + 1) = Measure.map (fun p : (Fin n → ℝ) × ℝ => (Fin.snoc p.1 p.2 : Fin (n + 1) → ℝ)) (ρ n ⊗ₘ κ n)) (hfiber : ∀ n, ∀ᵐ x ∂ρ n, Measure.map (Q n x) η = κ n x) : …Mentions: OAI.Problem358.TriangularRecursion.ConditionalFamily
- theorem
OAI.Problem358.TriangularSampling.map_sample_pi_eq_of_stepsline 188Source documentation
A finite-dimensional version: only the first
Ndisintegration identities and conditional laws are required. No consistency beyond the desired dimension is assumed.theorem map_sample_pi_eq_of_steps (N : ℕ) (Q : TriangularRecursion.ConditionalFamily) (hQ : ∀ n, Measurable (fun p : (Fin n → ℝ) × ℝ => Q n p.1 p.2)) (η : Measure ℝ) [SigmaFinite η] (ρ : (n : ℕ) → Measure (Fin n → ℝ)) (κ : (n : ℕ) → Kernel (Fin n → ℝ) ℝ) (hρ : ∀ n ≤ N, SFinite (ρ n)) (hκ : ∀ n < N, IsSFiniteKernel (κ n)) (hzero : ρ 0 = Measure.pi (fun _ : Fin 0 => η)) (hstep : ∀ n < N, ρ (n + 1) = Measure.map (fun p : (Fin n → ℝ) × ℝ => (Fin.snoc p.1 p.2 : Fin (n + 1) → ℝ)) (ρ n ⊗ₘ κ n)) …Mentions: OAI.Problem358.TriangularRecursion.ConditionalFamily
- theorem
OAI.Problem358.map_triangular_recursionline 243Source documentation
Law induction for triangular samplers with explicit conditional laws.
theorem map_triangular_recursion {X : Type*} [MeasurableSpace X] (η : Measure X) [SigmaFinite η] (ν : (n : ℕ) → Measure (Fin n → X)) (κ : (n : ℕ) → Kernel (Fin n → X) X) [∀ n, SFinite (ν n)] [∀ n, IsSFiniteKernel (κ n)] (F : (n : ℕ) → (Fin n → X) → (Fin n → X)) (G : (n : ℕ) → ((Fin n → X) × X) → X) (hF : ∀ n, Measurable (F n)) (hG : ∀ n, Measurable (G n)) (hzero : Measure.map (F 0) (Measure.pi fun _ : Fin 0 => η) = ν 0) (hrecursion : ∀ n s t, F (n + 1) (Fin.snoc s t) = Fin.snoc (F n s) (G n (s, t))) (htarget : ∀ n, ν (n + 1) = … - theorem
OAI.Problem358.TriangularRecursion.map_sample_of_conditional_lawsline 289Source documentation
The law of the recursive sampler follows from conditional laws valid almost everywhere under the desired prefix law. No pointwise law on null prefixes is needed.
theorem map_sample_of_conditional_laws (η : Measure ℝ) [SigmaFinite η] (Q : ConditionalFamily) (ν : (n : ℕ) → Measure (Fin n → ℝ)) (κ : (n : ℕ) → Kernel (Fin n → ℝ) ℝ) [∀ n, SFinite (ν n)] [∀ n, IsSFiniteKernel (κ n)] (hQ : ∀ n, Measurable (fun p : (Fin n → ℝ) × ℝ => Q n p.1 p.2)) (hzero : (Measure.pi fun _ : Fin 0 => η) = ν 0) (htarget : ∀ n, ν (n + 1) = Measure.map (fun p : (Fin n → ℝ) × ℝ => Fin.snoc p.1 p.2) (ν n ⊗ₘ κ n)) (hfiber : ∀ n, ∀ᵐ x ∂ν n, Measure.map (Q n x) η = κ n x) : ∀ n, Measure.map (sample Q n) (Measure.pi fun _ : Fin n => η) = ν n := by …Mentions: OAI.Problem358.TriangularRecursion.ConditionalFamily, OAI.Problem358.TriangularRecursion.sample
- theorem
OAI.Problem358.TriangularRecursion.empty_prefix_lawline 339Source documentation
The empty-prefix base law is automatic for probability laws.
theorem empty_prefix_law (η : Measure ℝ) [IsProbabilityMeasure η] (ν : Measure (Fin 0 → ℝ)) [IsProbabilityMeasure ν] : (Measure.pi fun _ : Fin 0 => η) = ν := by … - theorem
OAI.Problem358.TriangularRecursion.map_sample_probabilityline 353Source documentation
Probability-prefix form of the triangular sampling law.
theorem map_sample_probability (η : Measure ℝ) [IsProbabilityMeasure η] (Q : ConditionalFamily) (ν : (n : ℕ) → Measure (Fin n → ℝ)) (κ : (n : ℕ) → Kernel (Fin n → ℝ) ℝ) [∀ n, IsProbabilityMeasure (ν n)] [∀ n, IsSFiniteKernel (κ n)] (hQ : ∀ n, Measurable (fun p : (Fin n → ℝ) × ℝ => Q n p.1 p.2)) (htarget : ∀ n, ν (n + 1) = Measure.map (fun p : (Fin n → ℝ) × ℝ => Fin.snoc p.1 p.2) (ν n ⊗ₘ κ n)) (hfiber : ∀ n, ∀ᵐ x ∂ν n, Measure.map (Q n x) η = κ n x) : ∀ n, Measure.map (sample Q n) (Measure.pi fun _ : Fin n => η) = ν n := …Mentions: OAI.Problem358.TriangularRecursion.ConditionalFamily, OAI.Problem358.TriangularRecursion.sample
- def
OAI.Problem358.TriangularRecursion.jointPlanline 376Source documentation
Couple two triangular samplers by using the same independent scalar inputs.
def jointPlan (η : Measure ℝ) (Q R : ConditionalFamily) (n : ℕ) : Measure ((Fin n → ℝ) × (Fin n → ℝ)) := …Mentions: OAI.Problem358.TriangularRecursion.ConditionalFamily
- theorem
OAI.Problem358.TriangularRecursion.measurable_jointSampleline 382Source documentation
The joint sampler is measurable whenever both conditional families are measurable.
theorem measurable_jointSample (Q R : ConditionalFamily) (hQ : ∀ n, Measurable (fun p : (Fin n → ℝ) × ℝ => Q n p.1 p.2)) (hR : ∀ n, Measurable (fun p : (Fin n → ℝ) × ℝ => R n p.1 p.2)) (n : ℕ) : Measurable (fun s => (sample Q n s, sample R n s)) := …Mentions: OAI.Problem358.TriangularRecursion.ConditionalFamily, OAI.Problem358.TriangularRecursion.sample
- theorem
OAI.Problem358.TriangularRecursion.isProbabilityMeasure_jointPlanline 389Source documentation
The common-parameter joint law is a probability measure.
theorem isProbabilityMeasure_jointPlan (η : Measure ℝ) [IsProbabilityMeasure η] (Q R : ConditionalFamily) (hQ : ∀ n, Measurable (fun p : (Fin n → ℝ) × ℝ => Q n p.1 p.2)) (hR : ∀ n, Measurable (fun p : (Fin n → ℝ) × ℝ => R n p.1 p.2)) (n : ℕ) : IsProbabilityMeasure (jointPlan η Q R n) := …Mentions: OAI.Problem358.TriangularRecursion.ConditionalFamily, OAI.Problem358.TriangularRecursion.jointPlan
- theorem
OAI.Problem358.TriangularRecursion.map_fst_jointPlanline 398Source documentation
Its first marginal is exactly the first sampler law.
theorem map_fst_jointPlan (η : Measure ℝ) (Q R : ConditionalFamily) (hQ : ∀ n, Measurable (fun p : (Fin n → ℝ) × ℝ => Q n p.1 p.2)) (hR : ∀ n, Measurable (fun p : (Fin n → ℝ) × ℝ => R n p.1 p.2)) (n : ℕ) : Measure.map Prod.fst (jointPlan η Q R n) = Measure.map (sample Q n) (Measure.pi fun _ : Fin n => η) := by …Mentions: OAI.Problem358.TriangularRecursion.ConditionalFamily, OAI.Problem358.TriangularRecursion.jointPlan, OAI.Problem358.TriangularRecursion.sample
- theorem
OAI.Problem358.TriangularRecursion.map_snd_jointPlanline 407Source documentation
Its second marginal is exactly the second sampler law.
theorem map_snd_jointPlan (η : Measure ℝ) (Q R : ConditionalFamily) (hQ : ∀ n, Measurable (fun p : (Fin n → ℝ) × ℝ => Q n p.1 p.2)) (hR : ∀ n, Measurable (fun p : (Fin n → ℝ) × ℝ => R n p.1 p.2)) (n : ℕ) : Measure.map Prod.snd (jointPlan η Q R n) = Measure.map (sample R n) (Measure.pi fun _ : Fin n => η) := by …Mentions: OAI.Problem358.TriangularRecursion.ConditionalFamily, OAI.Problem358.TriangularRecursion.jointPlan, OAI.Problem358.TriangularRecursion.sample
- theorem
OAI.Problem358.TriangularRecursion.map_midpoint_jointPlanline 416Source documentation
Taking the midpoint of the coupling is exactly the recursively decomposed midpoint law.
theorem map_midpoint_jointPlan (η : Measure ℝ) (Q R : ConditionalFamily) (hQ : ∀ n, Measurable (fun p : (Fin n → ℝ) × ℝ => Q n p.1 p.2)) (hR : ∀ n, Measurable (fun p : (Fin n → ℝ) × ℝ => R n p.1 p.2)) (n : ℕ) : Measure.map (fun p : (Fin n → ℝ) × (Fin n → ℝ) => (1 / 2 : ℝ) • p.1 + (1 / 2 : ℝ) • p.2) (jointPlan η Q R n) = Measure.map (midpoint Q R n) (Measure.pi fun _ : Fin n => η) := by …Mentions: OAI.Problem358.TriangularRecursion.ConditionalFamily, OAI.Problem358.TriangularRecursion.jointPlan, OAI.Problem358.TriangularRecursion.midpoint
- theorem
OAI.Problem358.TriangularRecursion.jointPlan_spec_of_lawsline 430Source documentation
A fixed-depth coupling certificate needs only the two measurable full samplers and their laws, so it also applies to finite-depth conditional families.
theorem jointPlan_spec_of_laws (η : Measure ℝ) [IsProbabilityMeasure η] (Q R : ConditionalFamily) (n : ℕ) {ν μ : Measure (Fin n → ℝ)} (hQ : Measurable (sample Q n)) (hR : Measurable (sample R n)) (hν : Measure.map (sample Q n) (Measure.pi fun _ : Fin n => η) = ν) (hμ : Measure.map (sample R n) (Measure.pi fun _ : Fin n => η) = μ) : IsProbabilityMeasure (jointPlan η Q R n) ∧ Measure.map Prod.fst (jointPlan η Q R n) = ν ∧ Measure.map Prod.snd (jointPlan η Q R n) = μ ∧ Measure.map (fun p : (Fin n → ℝ) × (Fin n → ℝ) => (1 / 2 : ℝ) • p.1 + (1 / 2 : ℝ) • p.2) (jointPlan η Q R n) = Measure.map (midpoint Q R n) (Measure.pi fun _ : Fin n => η) := by …Mentions: OAI.Problem358.TriangularRecursion.ConditionalFamily, OAI.Problem358.TriangularRecursion.sample, OAI.Problem358.TriangularRecursion.jointPlan, OAI.Problem358.TriangularRecursion.midpoint
- theorem
OAI.Problem358.TriangularRecursion.measurable_sample_uptoline 465Source documentation
Measurability only requires the conditional samplers used before the given depth.
theorem measurable_sample_upto (Q : ConditionalFamily) (d : ℕ) (hQ : ∀ k, k < d → Measurable (fun p : (Fin k → ℝ) × ℝ => Q k p.1 p.2)) : ∀ n, n ≤ d → Measurable (sample Q n) := by …Mentions: OAI.Problem358.TriangularRecursion.ConditionalFamily, OAI.Problem358.TriangularRecursion.sample
- theorem
OAI.Problem358.TriangularRecursion.map_sample_of_conditional_laws_uptoline 488Source documentation
Finite-depth sampling law: no regularity or law hypotheses are imposed beyond d.
theorem map_sample_of_conditional_laws_upto (η : Measure ℝ) [SigmaFinite η] (Q : ConditionalFamily) (d : ℕ) (ν : (n : ℕ) → Measure (Fin n → ℝ)) (κ : (n : ℕ) → Kernel (Fin n → ℝ) ℝ) (hν : ∀ n, n ≤ d → SFinite (ν n)) (hκ : ∀ n, n < d → IsSFiniteKernel (κ n)) (hQ : ∀ n, n < d → Measurable (fun p : (Fin n → ℝ) × ℝ => Q n p.1 p.2)) (hzero : (Measure.pi fun _ : Fin 0 => η) = ν 0) (htarget : ∀ n, n < d → ν (n + 1) = Measure.map (fun p : (Fin n → ℝ) × ℝ => Fin.snoc p.1 p.2) (ν n ⊗ₘ κ n)) (hfiber : ∀ n, n < d → ∀ᵐ x ∂ν n, Measure.map (Q n x) η = κ n x) : ∀ n, n ≤ d → Measure.map (sample Q n) (Measure.pi fun _ : Fin n => η) = ν n := by …Mentions: OAI.Problem358.TriangularRecursion.ConditionalFamily, OAI.Problem358.TriangularRecursion.sample
- theorem
OAI.Problem358.TriangularRecursion.map_sample_probability_uptoline 544Source documentation
Probability-law form with the empty-prefix base case discharged automatically.
theorem map_sample_probability_upto (η : Measure ℝ) [IsProbabilityMeasure η] (Q : ConditionalFamily) (d : ℕ) (ν : (n : ℕ) → Measure (Fin n → ℝ)) (κ : (n : ℕ) → Kernel (Fin n → ℝ) ℝ) (hν : ∀ n, n ≤ d → IsProbabilityMeasure (ν n)) (hκ : ∀ n, n < d → IsSFiniteKernel (κ n)) (hQ : ∀ n, n < d → Measurable (fun p : (Fin n → ℝ) × ℝ => Q n p.1 p.2)) (htarget : ∀ n, n < d → ν (n + 1) = Measure.map (fun p : (Fin n → ℝ) × ℝ => Fin.snoc p.1 p.2) (ν n ⊗ₘ κ n)) (hfiber : ∀ n, n < d → ∀ᵐ x ∂ν n, Measure.map (Q n x) η = κ n x) : ∀ n, n ≤ d → Measure.map (sample Q n) (Measure.pi fun _ : Fin n => η) = ν n := by …Mentions: OAI.Problem358.TriangularRecursion.ConditionalFamily, OAI.Problem358.TriangularRecursion.sample
- theorem
OAI.Problem358.TriangularRecursion.sample_mem_domains_uptoline 564Source documentation
Pointwise valid-prefix preservation also needs conditional data only below d.
theorem sample_mem_domains_upto (Q : ConditionalFamily) (d : ℕ) (D : (n : ℕ) → Set (Fin n → ℝ)) (hzero : ∀ x, x ∈ D 0) (hstep : ∀ n, n < d → ∀ x, x ∈ D n → ∀ t ∈ Set.Ioo (0 : ℝ) 1, Fin.snoc x (Q n x t) ∈ D (n+1)) : ∀ n, n ≤ d → ∀ s, (∀ i, s i ∈ Set.Ioo (0 : ℝ) 1) → sample Q n s ∈ D n := by …Mentions: OAI.Problem358.TriangularRecursion.ConditionalFamily, OAI.Problem358.TriangularRecursion.sample