Documentation

Mathlib.Probability.Kernel.Defs

Markov Kernels #

A kernel from a measurable space α to another measurable space β is a measurable map α → MeasureTheory.Measure β, where the measurable space instance on measure β is the one defined in MeasureTheory.Measure.instMeasurableSpace. That is, a kernel κ verifies that for all measurable sets s of β, a ↦ κ a s is measurable.

Main definitions #

Classes of kernels:

Main statements #

structure ProbabilityTheory.Kernel (α : Type u_1) (β : Type u_2) [MeasurableSpace α] [MeasurableSpace β] :
Type (max u_1 u_2)

A kernel from a measurable space α to another measurable space β is a measurable function κ : α → Measure β. The measurable space structure on MeasureTheory.Measure β is given by MeasureTheory.Measure.instMeasurableSpace. A map κ : α → MeasureTheory.Measure β is measurable iff ∀ s : Set β, MeasurableSet s → Measurable (fun a ↦ κ a s).

Instances For

Notation for Kernel with respect to a non-standard σ-algebra in the domain.

Equations
  • One or more equations did not get rendered due to their size.

Notation for Kernel with respect to a non-standard σ-algebra in the domain and codomain.

Equations
  • One or more equations did not get rendered due to their size.
instance ProbabilityTheory.Kernel.instFunLike {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} :
Equations
theorem ProbabilityTheory.Kernel.measurable {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (κ : Kernel α β) :
@[simp]
theorem ProbabilityTheory.Kernel.coe_mk {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (f : αMeasureTheory.Measure β) (hf : Measurable f) :
{ toFun := f, measurable' := hf } = f
instance ProbabilityTheory.Kernel.instZero {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} :
Zero (Kernel α β)
Equations
noncomputable instance ProbabilityTheory.Kernel.instAdd {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} :
Add (Kernel α β)
Equations
noncomputable instance ProbabilityTheory.Kernel.instSMulNat {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} :
SMul (Kernel α β)
Equations
@[simp]
theorem ProbabilityTheory.Kernel.coe_zero {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} :
0 = 0
@[simp]
theorem ProbabilityTheory.Kernel.coe_add {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (κ η : Kernel α β) :
⇑(κ + η) = κ + η
@[simp]
theorem ProbabilityTheory.Kernel.coe_nsmul {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (n : ) (κ : Kernel α β) :
⇑(n κ) = n κ
@[simp]
theorem ProbabilityTheory.Kernel.zero_apply {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (a : α) :
0 a = 0
@[simp]
theorem ProbabilityTheory.Kernel.add_apply {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (κ η : Kernel α β) (a : α) :
(κ + η) a = κ a + η a
@[simp]
theorem ProbabilityTheory.Kernel.nsmul_apply {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (n : ) (κ : Kernel α β) (a : α) :
(n κ) a = n κ a
noncomputable instance ProbabilityTheory.Kernel.instAddCommMonoid {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} :
Equations
instance ProbabilityTheory.Kernel.instCovariantAddLE {α : Type u_4} {β : Type u_5} [MeasurableSpace α] [MeasurableSpace β] :
CovariantClass (Kernel α β) (Kernel α β) (fun (x1 x2 : Kernel α β) => x1 + x2) fun (x1 x2 : Kernel α β) => x1 x2

Coercion to a function as an additive monoid homomorphism.

Equations
@[simp]
theorem ProbabilityTheory.Kernel.coeAddHom_apply (α : Type u_4) (β : Type u_5) [MeasurableSpace α] [MeasurableSpace β] (κ : Kernel α β) :
(coeAddHom α β) κ = κ
@[simp]
theorem ProbabilityTheory.Kernel.coe_finset_sum {α : Type u_1} {β : Type u_2} {ι : Type u_3} { : MeasurableSpace α} { : MeasurableSpace β} (I : Finset ι) (κ : ιKernel α β) :
(∑ iI, κ i) = iI, (κ i)
theorem ProbabilityTheory.Kernel.finset_sum_apply {α : Type u_1} {β : Type u_2} {ι : Type u_3} { : MeasurableSpace α} { : MeasurableSpace β} (I : Finset ι) (κ : ιKernel α β) (a : α) :
(∑ iI, κ i) a = iI, (κ i) a
theorem ProbabilityTheory.Kernel.finset_sum_apply' {α : Type u_1} {β : Type u_2} {ι : Type u_3} { : MeasurableSpace α} { : MeasurableSpace β} (I : Finset ι) (κ : ιKernel α β) (a : α) (s : Set β) :
((∑ iI, κ i) a) s = iI, ((κ i) a) s
class ProbabilityTheory.IsMarkovKernel {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (κ : Kernel α β) :

A kernel is a Markov kernel if every measure in its image is a probability measure.

Instances
theorem ProbabilityTheory.eq_zero_or_isMarkovKernel {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (κ : Kernel α β) [h : IsZeroOrMarkovKernel κ] :
noncomputable def ProbabilityTheory.IsFiniteKernel.bound {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (κ : Kernel α β) [h : IsFiniteKernel κ] :

A constant C : ℝ≥0∞ such that C < ∞ (ProbabilityTheory.IsFiniteKernel.bound_lt_top κ) and for all a : α and s : Set β, κ a s ≤ C (ProbabilityTheory.Kernel.measure_le_bound κ a s).

Porting note (https://github.com/leanprover-community/mathlib4/issues/11215): TODO: does it make sense to -- make ProbabilityTheory.IsFiniteKernel.bound the least possible bound? -- Should it be an NNReal number?

Equations
theorem ProbabilityTheory.IsFiniteKernel.bound_lt_top {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (κ : Kernel α β) [h : IsFiniteKernel κ] :
theorem ProbabilityTheory.IsFiniteKernel.bound_ne_top {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (κ : Kernel α β) [IsFiniteKernel κ] :
theorem ProbabilityTheory.Kernel.measure_le_bound {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (κ : Kernel α β) [h : IsFiniteKernel κ] (a : α) (s : Set β) :
instance ProbabilityTheory.isFiniteKernel_zero (α : Type u_4) (β : Type u_5) {x✝ : MeasurableSpace α} {x✝¹ : MeasurableSpace β} :
instance ProbabilityTheory.IsFiniteKernel.add {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (κ η : Kernel α β) [IsFiniteKernel κ] [IsFiniteKernel η] :
theorem ProbabilityTheory.isFiniteKernel_of_le {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} {κ ν : Kernel α β} [ : IsFiniteKernel ν] (hκν : κ ν) :
instance ProbabilityTheory.IsFiniteKernel.isFiniteMeasure {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} {κ : Kernel α β} [IsFiniteKernel κ] (a : α) :
@[instance 100]
theorem ProbabilityTheory.Kernel.ext {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} {κ η : Kernel α β} (h : ∀ (a : α), κ a = η a) :
κ = η
theorem ProbabilityTheory.Kernel.ext_iff' {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} {κ η : Kernel α β} :
κ = η ∀ (a : α) (s : Set β), MeasurableSet s(κ a) s = (η a) s
theorem ProbabilityTheory.Kernel.ext_fun {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} {κ η : Kernel α β} (h : ∀ (a : α) (f : βENNReal), Measurable f∫⁻ (b : β), f b κ a = ∫⁻ (b : β), f b η a) :
κ = η
theorem ProbabilityTheory.Kernel.ext_fun_iff {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} {κ η : Kernel α β} :
κ = η ∀ (a : α) (f : βENNReal), Measurable f∫⁻ (b : β), f b κ a = ∫⁻ (b : β), f b η a
theorem ProbabilityTheory.Kernel.measurable_coe {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (κ : Kernel α β) {s : Set β} (hs : MeasurableSet s) :
Measurable fun (a : α) => (κ a) s
theorem ProbabilityTheory.Kernel.apply_congr_of_mem_measurableAtom {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (κ : Kernel α β) {y' y : α} (hy' : y' measurableAtom y) :
κ y' = κ y
theorem ProbabilityTheory.Kernel.eq_zero_of_isEmpty_left {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (κ : Kernel α β) [h : IsEmpty α] :
κ = 0
theorem ProbabilityTheory.Kernel.eq_zero_of_isEmpty_right {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (κ : Kernel α β) [IsEmpty β] :
κ = 0
noncomputable def ProbabilityTheory.Kernel.sum {α : Type u_1} {β : Type u_2} {ι : Type u_3} { : MeasurableSpace α} { : MeasurableSpace β} [Countable ι] (κ : ιKernel α β) :
Kernel α β

Sum of an indexed family of kernels.

Equations
Instances For
theorem ProbabilityTheory.Kernel.sum_apply {α : Type u_1} {β : Type u_2} {ι : Type u_3} { : MeasurableSpace α} { : MeasurableSpace β} [Countable ι] (κ : ιKernel α β) (a : α) :
(Kernel.sum κ) a = MeasureTheory.Measure.sum fun (n : ι) => (κ n) a
theorem ProbabilityTheory.Kernel.sum_apply' {α : Type u_1} {β : Type u_2} {ι : Type u_3} { : MeasurableSpace α} { : MeasurableSpace β} [Countable ι] (κ : ιKernel α β) (a : α) {s : Set β} (hs : MeasurableSet s) :
((Kernel.sum κ) a) s = ∑' (n : ι), ((κ n) a) s
@[simp]
theorem ProbabilityTheory.Kernel.sum_zero {α : Type u_1} {β : Type u_2} {ι : Type u_3} { : MeasurableSpace α} { : MeasurableSpace β} [Countable ι] :
(Kernel.sum fun (x : ι) => 0) = 0
theorem ProbabilityTheory.Kernel.sum_comm {α : Type u_1} {β : Type u_2} {ι : Type u_3} { : MeasurableSpace α} { : MeasurableSpace β} [Countable ι] (κ : ιιKernel α β) :
(Kernel.sum fun (n : ι) => Kernel.sum (κ n)) = Kernel.sum fun (m : ι) => Kernel.sum fun (n : ι) => κ n m
@[simp]
theorem ProbabilityTheory.Kernel.sum_fintype {α : Type u_1} {β : Type u_2} {ι : Type u_3} { : MeasurableSpace α} { : MeasurableSpace β} [Fintype ι] (κ : ιKernel α β) :
Kernel.sum κ = i : ι, κ i
theorem ProbabilityTheory.Kernel.sum_add {α : Type u_1} {β : Type u_2} {ι : Type u_3} { : MeasurableSpace α} { : MeasurableSpace β} [Countable ι] (κ η : ιKernel α β) :
(Kernel.sum fun (n : ι) => κ n + η n) = Kernel.sum κ + Kernel.sum η
@[instance 100]
instance ProbabilityTheory.Kernel.IsFiniteKernel.isSFiniteKernel {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} {κ : Kernel α β} [h : IsFiniteKernel κ] :
noncomputable def ProbabilityTheory.Kernel.seq {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (κ : Kernel α β) [h : IsSFiniteKernel κ] :
Kernel α β

A sequence of finite kernels such that κ = ProbabilityTheory.Kernel.sum (seq κ). See ProbabilityTheory.Kernel.isFiniteKernel_seq and ProbabilityTheory.Kernel.kernel_sum_seq.

Equations
Instances For
theorem ProbabilityTheory.Kernel.kernel_sum_seq {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (κ : Kernel α β) [h : IsSFiniteKernel κ] :
theorem ProbabilityTheory.Kernel.measure_sum_seq {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (κ : Kernel α β) [h : IsSFiniteKernel κ] (a : α) :
(MeasureTheory.Measure.sum fun (n : ) => (κ.seq n) a) = κ a
instance ProbabilityTheory.Kernel.isFiniteKernel_seq {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (κ : Kernel α β) [h : IsSFiniteKernel κ] (n : ) :
instance ProbabilityTheory.IsSFiniteKernel.sFinite {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} {κ : Kernel α β} [IsSFiniteKernel κ] (a : α) :
instance ProbabilityTheory.Kernel.IsSFiniteKernel.add {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (κ η : Kernel α β) [IsSFiniteKernel κ] [IsSFiniteKernel η] :
theorem ProbabilityTheory.Kernel.IsSFiniteKernel.finset_sum {α : Type u_1} {β : Type u_2} {ι : Type u_3} { : MeasurableSpace α} { : MeasurableSpace β} {κs : ιKernel α β} (I : Finset ι) (h : iI, IsSFiniteKernel (κs i)) :
IsSFiniteKernel (∑ iI, κs i)
theorem ProbabilityTheory.Kernel.isSFiniteKernel_sum_of_denumerable {α : Type u_1} {β : Type u_2} {ι : Type u_3} { : MeasurableSpace α} { : MeasurableSpace β} [Denumerable ι] {κs : ιKernel α β} (hκs : ∀ (n : ι), IsSFiniteKernel (κs n)) :
instance ProbabilityTheory.Kernel.isSFiniteKernel_sum {α : Type u_1} {β : Type u_2} {ι : Type u_3} { : MeasurableSpace α} { : MeasurableSpace β} [Countable ι] {κs : ιKernel α β} [hκs : ∀ (n : ι), IsSFiniteKernel (κs n)] :