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

      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.
      Instances For
        @[instance_reducible]
        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_reducible]
        instance ProbabilityTheory.Kernel.instZero {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} :
        Zero (Kernel α β)
        Equations
        @[instance_reducible]
        noncomputable instance ProbabilityTheory.Kernel.instAdd {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} :
        Add (Kernel α β)
        Equations
        @[instance_reducible]
        noncomputable instance ProbabilityTheory.Kernel.instSMulNat {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} :
        SMul (Kernel α β)
        Equations
        @[deprecated FunLike.coe_zero (since := "2026-06-30")]
        theorem ProbabilityTheory.Kernel.coe_zero {F : Type u_3} {α : Type u_5} {β : Type u_6} [FunLike F α β] [Zero F] [Zero β] [IsZeroApply F α β] :
        0 = 0

        Alias of FunLike.coe_zero.

        @[deprecated FunLike.coe_add (since := "2026-06-30")]
        theorem ProbabilityTheory.Kernel.coe_add {F : Type u_3} {α : Type u_5} {β : Type u_6} [FunLike F α β] [Add F] [Add β] [IsAddApply F α β] (f g : F) :
        ⇑(f + g) = f + g

        Alias of FunLike.coe_add.

        @[deprecated FunLike.coe_smul (since := "2026-06-30")]
        theorem ProbabilityTheory.Kernel.coe_nsmul {M : Type u_1} {F : Type u_3} {α : Type u_5} {β : Type u_6} [FunLike F α β] [SMul M F] [SMul M β] [IsSMulApply M F α β] (n : M) (f : F) :
        ⇑(n f) = n f

        Alias of FunLike.coe_smul.

        @[deprecated zero_apply (since := "2026-06-30")]
        theorem ProbabilityTheory.Kernel.zero_apply {F : Type u_1} {α : outParam (Type u_2)} {β : outParam (Type u_3)} {inst✝ : FunLike F α β} {inst✝¹ : Zero β} {inst✝² : Zero F} [self : IsZeroApply F α β] (x : α) :
        0 x = 0

        Alias of zero_apply.

        @[deprecated add_apply (since := "2026-06-30")]
        theorem ProbabilityTheory.Kernel.add_apply {F : Type u_1} {α : outParam (Type u_2)} {β : outParam (Type u_3)} {inst✝ : FunLike F α β} {inst✝¹ : Add β} {inst✝² : Add F} [self : IsAddApply F α β] (f g : F) (x : α) :
        (f + g) x = f x + g x

        Alias of add_apply.

        @[deprecated smul_apply (since := "2026-06-30")]
        theorem ProbabilityTheory.Kernel.nsmul_apply {M : Type u_1} {F : Type u_2} {α : outParam (Type u_3)} {β : outParam (Type u_4)} {inst✝ : FunLike F α β} {inst✝¹ : SMul M β} {inst✝² : SMul M F} [self : IsSMulApply M F α β] (f : F) (r : M) (x : α) :
        (r f) x = r f x

        Alias of smul_apply.

        @[instance_reducible]
        noncomputable instance ProbabilityTheory.Kernel.instAddCommMonoid {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} :
        Equations
        • One or more equations did not get rendered due to their size.
        @[instance_reducible]
        noncomputable instance ProbabilityTheory.Kernel.instOrderBot {α : Type u_4} {β : Type u_5} [MeasurableSpace α] [MeasurableSpace β] :
        Equations
        @[deprecated FunLike.coe_coeAddMonoidHom (since := "2026-06-30")]
        theorem ProbabilityTheory.Kernel.coeAddHom {F : Type u_1} {α : Type u_2} {β : Type u_3} [FunLike F α β] [AddZero F] [AddZeroClass β] [IsZeroApply F α β] [IsAddApply F α β] :

        Alias of FunLike.coe_coeAddMonoidHom.

        @[deprecated FunLike.coeAddMonoidHom_apply (since := "2026-06-30")]
        theorem ProbabilityTheory.Kernel.coeAddHom_apply {F : Type u_1} {α : Type u_2} {β : Type u_3} [FunLike F α β] [AddZero F] [AddZeroClass β] [IsZeroApply F α β] [IsAddApply F α β] (f : F) :
        (FunLike.coeAddMonoidHom F α β) f = f

        Alias of FunLike.coeAddMonoidHom_apply.

        @[deprecated FunLike.coe_sum (since := "2026-06-30")]
        theorem ProbabilityTheory.Kernel.coe_finsetSum {F : Type u_8} {α : Type u_9} {β : Type u_10} {ι : Type u_11} [FunLike F α β] [AddCommMonoid β] [AddCommMonoid F] [IsZeroApply F α β] [IsAddApply F α β] (s : Finset ι) (f : ιF) :
        (∑ is, f i) = is, (f i)

        Alias of FunLike.coe_sum.

        @[deprecated FunLike.coe_sum (since := "2026-04-08")]
        theorem ProbabilityTheory.Kernel.coe_finset_sum {F : Type u_8} {α : Type u_9} {β : Type u_10} {ι : Type u_11} [FunLike F α β] [AddCommMonoid β] [AddCommMonoid F] [IsZeroApply F α β] [IsAddApply F α β] (s : Finset ι) (f : ιF) :
        (∑ is, f i) = is, (f i)

        Alias of FunLike.coe_sum.

        @[deprecated sum_apply (since := "2026-06-30")]
        theorem ProbabilityTheory.Kernel.finsetSum_apply {F : Type u_8} {α : Type u_9} {β : Type u_10} {ι : Type u_11} [FunLike F α β] [AddCommMonoid β] [AddCommMonoid F] [IsZeroApply F α β] [IsAddApply F α β] (s : Finset ι) (f : ιF) (x : α) :
        (∑ is, f i) x = is, (f i) x

        Alias of sum_apply.

        @[deprecated sum_apply (since := "2026-04-08")]
        theorem ProbabilityTheory.Kernel.finset_sum_apply {F : Type u_8} {α : Type u_9} {β : Type u_10} {ι : Type u_11} [FunLike F α β] [AddCommMonoid β] [AddCommMonoid F] [IsZeroApply F α β] [IsAddApply F α β] (s : Finset ι) (f : ιF) (x : α) :
        (∑ is, f i) x = is, (f i) x

        Alias of sum_apply.

        theorem ProbabilityTheory.Kernel.finsetSum_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
        @[deprecated ProbabilityTheory.Kernel.finsetSum_apply' (since := "2026-04-08")]
        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

        Alias of ProbabilityTheory.Kernel.finsetSum_apply'.

        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.Kernel.bound {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (κ : Kernel α β) :

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

              Equations
              Instances For
                theorem ProbabilityTheory.Kernel.bound_lt_top {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (κ : Kernel α β) [h : IsFiniteKernel κ] :
                theorem ProbabilityTheory.Kernel.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 α β) (a : α) (s : Set β) :
                (κ a) s κ.bound
                @[simp]
                theorem ProbabilityTheory.Kernel.bound_eq_zero_of_isEmpty {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} [IsEmpty α] (κ : Kernel α β) :
                κ.bound = 0
                @[simp]
                theorem ProbabilityTheory.Kernel.bound_eq_zero_of_isEmpty' {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} [IsEmpty β] (κ : Kernel α β) :
                κ.bound = 0
                @[simp]
                theorem ProbabilityTheory.Kernel.bound_zero {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} :
                bound 0 = 0
                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]
                @[simp]
                theorem ProbabilityTheory.Kernel.bound_eq_one {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} [Nonempty α] (κ : Kernel α β) [IsMarkovKernel κ] :
                κ.bound = 1
                @[simp]
                theorem ProbabilityTheory.Kernel.bound_le_one {α : Type u_1} {β : Type u_2} { : MeasurableSpace α} { : MeasurableSpace β} (κ : Kernel α β) [IsZeroOrMarkovKernel κ] :
                κ.bound 1
                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.finsetSum {α : Type u_1} {β : Type u_2} {ι : Type u_3} { : MeasurableSpace α} { : MeasurableSpace β} {κs : ιKernel α β} (I : Finset ι) (h : iI, IsSFiniteKernel (κs i)) :
                      IsSFiniteKernel (∑ iI, κs i)
                      @[deprecated ProbabilityTheory.Kernel.IsSFiniteKernel.finsetSum (since := "2026-04-08")]
                      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)

                      Alias of ProbabilityTheory.Kernel.IsSFiniteKernel.finsetSum.

                      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)] :