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
      Instances For

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

        Equations
          Instances For
            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 α β) :
              theorem ProbabilityTheory.Kernel.aemeasurable {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (κ : Kernel α β) {μ : MeasureTheory.Measure α} :
              AEMeasurable (⇑κ) μ
              @[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.instPartialOrder {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} :
                      Equations
                        noncomputable instance ProbabilityTheory.Kernel.instOrderBot {α : Type u_4} {β : Type u_5} [MeasurableSpace α] [MeasurableSpace β] :
                        Equations
                          noncomputable def ProbabilityTheory.Kernel.coeAddHom (α : Type u_4) (β : Type u_5) [MeasurableSpace α] [MeasurableSpace β] :

                          Coercion to a function as an additive monoid homomorphism.

                          Equations
                            Instances For
                              @[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
                                class ProbabilityTheory.IsZeroOrMarkovKernel {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (κ : Kernel α β) :

                                A class for kernels which are zero or a Markov kernel.

                                Instances
                                  class ProbabilityTheory.IsFiniteKernel {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (κ : Kernel α β) :

                                  A kernel is finite if every measure in its image is finite, with a uniform bound.

                                  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
                                      Instances For
                                        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 : α), κ 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
                                        instance ProbabilityTheory.Kernel.instIsMarkovKernelOfIsEmpty {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} [IsEmpty α] (κ : Kernel α β) :
                                        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 η
                                            class ProbabilityTheory.IsSFiniteKernel {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (κ : Kernel α β) :

                                            A kernel is s-finite if it can be written as the sum of countably many finite kernels.

                                            Instances
                                              @[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)] :