Documentation

Mathlib.MeasureTheory.Function.SimpleFunc

Simple functions #

A function f from a measurable space to any type is called simple, if every preimage f ⁻¹' {x} is measurable, and the range is finite. In this file, we define simple functions and establish their basic properties; and we construct a sequence of simple functions approximating an arbitrary Borel measurable function f : α → ℝ≥0∞.

The theorem Measurable.ennreal_induction shows that in order to prove something for an arbitrary measurable function into ℝ≥0∞, it is sufficient to show that the property holds for (multiples of) characteristic functions and is closed under addition and supremum of increasing sequences of functions.

structure MeasureTheory.SimpleFunc (α : Type u) [MeasurableSpace α] (β : Type v) :
Type (max u v)

A function f from a measurable space to any type is called simple, if every preimage f ⁻¹' {x} is measurable, and the range is finite. This structure bundles a function with these properties.

Instances For
    instance MeasureTheory.SimpleFunc.instCoeFun {α : Type u_1} {β : Type u_2} [MeasurableSpace α] :
    CoeFun (MeasureTheory.SimpleFunc α β) fun (x : MeasureTheory.SimpleFunc α β) => αβ
    Equations
    • MeasureTheory.SimpleFunc.instCoeFun = { coe := MeasureTheory.SimpleFunc.toFun }
    theorem MeasureTheory.SimpleFunc.coe_injective {α : Type u_1} {β : Type u_2} [MeasurableSpace α] ⦃f : MeasureTheory.SimpleFunc α β ⦃g : MeasureTheory.SimpleFunc α β (H : f = g) :
    f = g
    theorem MeasureTheory.SimpleFunc.ext {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {f : MeasureTheory.SimpleFunc α β} {g : MeasureTheory.SimpleFunc α β} (H : ∀ (a : α), f a = g a) :
    f = g
    theorem MeasureTheory.SimpleFunc.apply_mk {α : Type u_1} {β : Type u_2} [MeasurableSpace α] (f : αβ) (h : ∀ (x : β), MeasurableSet (f ⁻¹' {x})) (h' : Set.Finite (Set.range f)) (x : α) :
    { toFun := f, measurableSet_fiber' := h, finite_range' := h' } x = f x

    Simple function defined on a finite type.

    Equations
    Instances For
      @[deprecated MeasureTheory.SimpleFunc.ofFinite]

      Alias of MeasureTheory.SimpleFunc.ofFinite.


      Simple function defined on a finite type.

      Equations
      Instances For

        Simple function defined on the empty type.

        Equations
        Instances For

          Range of a simple function α →ₛ β as a Finset β.

          Equations
          Instances For
            theorem MeasureTheory.SimpleFunc.forall_range_iff {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {f : MeasureTheory.SimpleFunc α β} {p : βProp} :
            (yMeasureTheory.SimpleFunc.range f, p y) ∀ (x : α), p (f x)
            theorem MeasureTheory.SimpleFunc.exists_range_iff {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {f : MeasureTheory.SimpleFunc α β} {p : βProp} :
            (∃ y ∈ MeasureTheory.SimpleFunc.range f, p y) ∃ (x : α), p (f x)
            theorem MeasureTheory.SimpleFunc.exists_forall_le {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Nonempty β] [Preorder β] [IsDirected β fun (x x_1 : β) => x x_1] (f : MeasureTheory.SimpleFunc α β) :
            ∃ (C : β), ∀ (x : α), f x C

            Constant function as a SimpleFunc.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              Equations
              theorem MeasureTheory.SimpleFunc.const_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] (a : α) (b : β) :
              @[simp]
              theorem MeasureTheory.SimpleFunc.simpleFunc_bot {β : Type u_2} {α : Type u_5} (f : MeasureTheory.SimpleFunc α β) [Nonempty β] :
              ∃ (c : β), ∀ (x : α), f x = c
              theorem MeasureTheory.SimpleFunc.measurableSet_cut {α : Type u_1} {β : Type u_2} [MeasurableSpace α] (r : αβProp) (f : MeasureTheory.SimpleFunc α β) (h : ∀ (b : β), MeasurableSet {a : α | r a b}) :
              MeasurableSet {a : α | r a (f a)}

              A simple function is measurable

              theorem MeasureTheory.SimpleFunc.sum_measure_preimage_singleton {α : Type u_1} {β : Type u_2} [MeasurableSpace α] (f : MeasureTheory.SimpleFunc α β) {μ : MeasureTheory.Measure α} (s : Finset β) :
              (Finset.sum s fun (y : β) => μ (f ⁻¹' {y})) = μ (f ⁻¹' s)
              theorem MeasureTheory.SimpleFunc.sum_range_measure_preimage_singleton {α : Type u_1} {β : Type u_2} [MeasurableSpace α] (f : MeasureTheory.SimpleFunc α β) (μ : MeasureTheory.Measure α) :
              (Finset.sum (MeasureTheory.SimpleFunc.range f) fun (y : β) => μ (f ⁻¹' {y})) = μ Set.univ

              If-then-else as a SimpleFunc.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[simp]
                theorem MeasureTheory.SimpleFunc.piecewise_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {s : Set α} (hs : MeasurableSet s) (f : MeasureTheory.SimpleFunc α β) (g : MeasureTheory.SimpleFunc α β) (a : α) :
                (MeasureTheory.SimpleFunc.piecewise s hs f g) a = if a s then f a else g a
                theorem MeasureTheory.SimpleFunc.range_indicator {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {s : Set α} (hs : MeasurableSet s) (hs_nonempty : Set.Nonempty s) (hs_ne_univ : s Set.univ) (x : β) (y : β) :
                theorem MeasureTheory.SimpleFunc.measurable_bind {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] [MeasurableSpace γ] (f : MeasureTheory.SimpleFunc α β) (g : βαγ) (hg : ∀ (b : β), Measurable (g b)) :
                Measurable fun (a : α) => g (f a) a
                def MeasureTheory.SimpleFunc.bind {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] (f : MeasureTheory.SimpleFunc α β) (g : βMeasureTheory.SimpleFunc α γ) :

                If f : α →ₛ β is a simple function and g : β → α →ₛ γ is a family of simple functions, then f.bind g binds the first argument of g to f. In other words, f.bind g a = g (f a) a.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[simp]
                  theorem MeasureTheory.SimpleFunc.bind_apply {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] (f : MeasureTheory.SimpleFunc α β) (g : βMeasureTheory.SimpleFunc α γ) (a : α) :
                  (MeasureTheory.SimpleFunc.bind f g) a = (g (f a)) a
                  def MeasureTheory.SimpleFunc.map {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] (g : βγ) (f : MeasureTheory.SimpleFunc α β) :

                  Given a function g : β → γ and a simple function f : α →ₛ β, f.map g return the simple function g ∘ f : α →ₛ γ

                  Equations
                  Instances For
                    theorem MeasureTheory.SimpleFunc.map_apply {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] (g : βγ) (f : MeasureTheory.SimpleFunc α β) (a : α) :
                    (MeasureTheory.SimpleFunc.map g f) a = g (f a)
                    theorem MeasureTheory.SimpleFunc.map_map {α : Type u_1} {β : Type u_2} {γ : Type u_3} {δ : Type u_4} [MeasurableSpace α] (g : βγ) (h : γδ) (f : MeasureTheory.SimpleFunc α β) :
                    @[simp]
                    theorem MeasureTheory.SimpleFunc.coe_map {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] (g : βγ) (f : MeasureTheory.SimpleFunc α β) :
                    @[simp]
                    theorem MeasureTheory.SimpleFunc.map_preimage {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] (f : MeasureTheory.SimpleFunc α β) (g : βγ) (s : Set γ) :
                    theorem MeasureTheory.SimpleFunc.map_preimage_singleton {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] (f : MeasureTheory.SimpleFunc α β) (g : βγ) (c : γ) :
                    (MeasureTheory.SimpleFunc.map g f) ⁻¹' {c} = f ⁻¹' (Finset.filter (fun (b : β) => g b = c) (MeasureTheory.SimpleFunc.range f))
                    def MeasureTheory.SimpleFunc.comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] [MeasurableSpace β] (f : MeasureTheory.SimpleFunc β γ) (g : αβ) (hgm : Measurable g) :

                    Composition of a SimpleFun and a measurable function is a SimpleFunc.

                    Equations
                    Instances For
                      @[simp]
                      theorem MeasureTheory.SimpleFunc.coe_comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] [MeasurableSpace β] (f : MeasureTheory.SimpleFunc β γ) {g : αβ} (hgm : Measurable g) :
                      (MeasureTheory.SimpleFunc.comp f g hgm) = f g
                      def MeasureTheory.SimpleFunc.extend {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] [MeasurableSpace β] (f₁ : MeasureTheory.SimpleFunc α γ) (g : αβ) (hg : MeasurableEmbedding g) (f₂ : MeasureTheory.SimpleFunc β γ) :

                      Extend a SimpleFunc along a measurable embedding: f₁.extend g hg f₂ is the function F : β →ₛ γ such that F ∘ g = f₁ and F y = f₂ y whenever y ∉ range g.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[simp]
                        theorem MeasureTheory.SimpleFunc.extend_apply {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] [MeasurableSpace β] (f₁ : MeasureTheory.SimpleFunc α γ) {g : αβ} (hg : MeasurableEmbedding g) (f₂ : MeasureTheory.SimpleFunc β γ) (x : α) :
                        (MeasureTheory.SimpleFunc.extend f₁ g hg f₂) (g x) = f₁ x
                        @[simp]
                        theorem MeasureTheory.SimpleFunc.extend_apply' {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] [MeasurableSpace β] (f₁ : MeasureTheory.SimpleFunc α γ) {g : αβ} (hg : MeasurableEmbedding g) (f₂ : MeasureTheory.SimpleFunc β γ) {y : β} (h : ¬∃ (x : α), g x = y) :
                        (MeasureTheory.SimpleFunc.extend f₁ g hg f₂) y = f₂ y
                        @[simp]
                        theorem MeasureTheory.SimpleFunc.extend_comp_eq' {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] [MeasurableSpace β] (f₁ : MeasureTheory.SimpleFunc α γ) {g : αβ} (hg : MeasurableEmbedding g) (f₂ : MeasureTheory.SimpleFunc β γ) :
                        (MeasureTheory.SimpleFunc.extend f₁ g hg f₂) g = f₁
                        @[simp]
                        theorem MeasureTheory.SimpleFunc.extend_comp_eq {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] [MeasurableSpace β] (f₁ : MeasureTheory.SimpleFunc α γ) {g : αβ} (hg : MeasurableEmbedding g) (f₂ : MeasureTheory.SimpleFunc β γ) :
                        def MeasureTheory.SimpleFunc.seq {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] (f : MeasureTheory.SimpleFunc α (βγ)) (g : MeasureTheory.SimpleFunc α β) :

                        If f is a simple function taking values in β → γ and g is another simple function with the same domain and codomain β, then f.seq g = f a (g a).

                        Equations
                        Instances For
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.seq_apply {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] (f : MeasureTheory.SimpleFunc α (βγ)) (g : MeasureTheory.SimpleFunc α β) (a : α) :
                          (MeasureTheory.SimpleFunc.seq f g) a = f a (g a)

                          Combine two simple functions f : α →ₛ β and g : α →ₛ β into fun a => (f a, g a).

                          Equations
                          Instances For
                            @[simp]
                            theorem MeasureTheory.SimpleFunc.pair_apply {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] (f : MeasureTheory.SimpleFunc α β) (g : MeasureTheory.SimpleFunc α γ) (a : α) :
                            (MeasureTheory.SimpleFunc.pair f g) a = (f a, g a)
                            theorem MeasureTheory.SimpleFunc.pair_preimage {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] (f : MeasureTheory.SimpleFunc α β) (g : MeasureTheory.SimpleFunc α γ) (s : Set β) (t : Set γ) :
                            theorem MeasureTheory.SimpleFunc.pair_preimage_singleton {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] (f : MeasureTheory.SimpleFunc α β) (g : MeasureTheory.SimpleFunc α γ) (b : β) (c : γ) :
                            (MeasureTheory.SimpleFunc.pair f g) ⁻¹' {(b, c)} = f ⁻¹' {b} g ⁻¹' {c}
                            Equations
                            Equations
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Equations
                            Equations
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Equations
                            • One or more equations did not get rendered due to their size.
                            instance MeasureTheory.SimpleFunc.instLE {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [LE β] :
                            Equations
                            @[simp]
                            theorem MeasureTheory.SimpleFunc.coe_zero {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Zero β] :
                            0 = 0
                            @[simp]
                            theorem MeasureTheory.SimpleFunc.coe_one {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [One β] :
                            1 = 1
                            @[simp]
                            theorem MeasureTheory.SimpleFunc.coe_add {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Add β] (f : MeasureTheory.SimpleFunc α β) (g : MeasureTheory.SimpleFunc α β) :
                            (f + g) = f + g
                            @[simp]
                            theorem MeasureTheory.SimpleFunc.coe_mul {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Mul β] (f : MeasureTheory.SimpleFunc α β) (g : MeasureTheory.SimpleFunc α β) :
                            (f * g) = f * g
                            @[simp]
                            theorem MeasureTheory.SimpleFunc.coe_neg {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Neg β] (f : MeasureTheory.SimpleFunc α β) :
                            (-f) = -f
                            @[simp]
                            theorem MeasureTheory.SimpleFunc.coe_inv {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Inv β] (f : MeasureTheory.SimpleFunc α β) :
                            f⁻¹ = (f)⁻¹
                            @[simp]
                            theorem MeasureTheory.SimpleFunc.coe_sub {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Sub β] (f : MeasureTheory.SimpleFunc α β) (g : MeasureTheory.SimpleFunc α β) :
                            (f - g) = f - g
                            @[simp]
                            theorem MeasureTheory.SimpleFunc.coe_div {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Div β] (f : MeasureTheory.SimpleFunc α β) (g : MeasureTheory.SimpleFunc α β) :
                            (f / g) = f / g
                            @[simp]
                            theorem MeasureTheory.SimpleFunc.coe_le {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Preorder β] {f : MeasureTheory.SimpleFunc α β} {g : MeasureTheory.SimpleFunc α β} :
                            f g f g
                            @[simp]
                            theorem MeasureTheory.SimpleFunc.coe_sup {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Sup β] (f : MeasureTheory.SimpleFunc α β) (g : MeasureTheory.SimpleFunc α β) :
                            (f g) = f g
                            @[simp]
                            theorem MeasureTheory.SimpleFunc.coe_inf {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Inf β] (f : MeasureTheory.SimpleFunc α β) (g : MeasureTheory.SimpleFunc α β) :
                            (f g) = f g
                            theorem MeasureTheory.SimpleFunc.add_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Add β] (f : MeasureTheory.SimpleFunc α β) (g : MeasureTheory.SimpleFunc α β) (a : α) :
                            (f + g) a = f a + g a
                            theorem MeasureTheory.SimpleFunc.mul_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Mul β] (f : MeasureTheory.SimpleFunc α β) (g : MeasureTheory.SimpleFunc α β) (a : α) :
                            (f * g) a = f a * g a
                            theorem MeasureTheory.SimpleFunc.sub_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Sub β] (f : MeasureTheory.SimpleFunc α β) (g : MeasureTheory.SimpleFunc α β) (x : α) :
                            (f - g) x = f x - g x
                            theorem MeasureTheory.SimpleFunc.div_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Div β] (f : MeasureTheory.SimpleFunc α β) (g : MeasureTheory.SimpleFunc α β) (x : α) :
                            (f / g) x = f x / g x
                            theorem MeasureTheory.SimpleFunc.neg_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Neg β] (f : MeasureTheory.SimpleFunc α β) (x : α) :
                            (-f) x = -f x
                            theorem MeasureTheory.SimpleFunc.inv_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Inv β] (f : MeasureTheory.SimpleFunc α β) (x : α) :
                            f⁻¹ x = (f x)⁻¹
                            theorem MeasureTheory.SimpleFunc.sup_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Sup β] (f : MeasureTheory.SimpleFunc α β) (g : MeasureTheory.SimpleFunc α β) (a : α) :
                            (f g) a = f a g a
                            theorem MeasureTheory.SimpleFunc.inf_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Inf β] (f : MeasureTheory.SimpleFunc α β) (g : MeasureTheory.SimpleFunc α β) (a : α) :
                            (f g) a = f a g a
                            theorem MeasureTheory.SimpleFunc.map_add {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] [Add β] [Add γ] {g : βγ} (hg : ∀ (x y : β), g (x + y) = g x + g y) (f₁ : MeasureTheory.SimpleFunc α β) (f₂ : MeasureTheory.SimpleFunc α β) :
                            theorem MeasureTheory.SimpleFunc.map_mul {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] [Mul β] [Mul γ] {g : βγ} (hg : ∀ (x y : β), g (x * y) = g x * g y) (f₁ : MeasureTheory.SimpleFunc α β) (f₂ : MeasureTheory.SimpleFunc α β) :
                            instance MeasureTheory.SimpleFunc.instVAdd {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {K : Type u_5} [VAdd K β] :
                            Equations
                            instance MeasureTheory.SimpleFunc.instSMul {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {K : Type u_5} [SMul K β] :
                            Equations
                            @[simp]
                            theorem MeasureTheory.SimpleFunc.coe_vadd {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {K : Type u_5} [VAdd K β] (c : K) (f : MeasureTheory.SimpleFunc α β) :
                            (c +ᵥ f) = c +ᵥ f
                            @[simp]
                            theorem MeasureTheory.SimpleFunc.coe_smul {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {K : Type u_5} [SMul K β] (c : K) (f : MeasureTheory.SimpleFunc α β) :
                            (c f) = c f
                            @[simp]
                            theorem MeasureTheory.SimpleFunc.vadd_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {K : Type u_5} [VAdd K β] (k : K) (f : MeasureTheory.SimpleFunc α β) (a : α) :
                            (k +ᵥ f) a = k +ᵥ f a
                            @[simp]
                            theorem MeasureTheory.SimpleFunc.smul_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {K : Type u_5} [SMul K β] (k : K) (f : MeasureTheory.SimpleFunc α β) (a : α) :
                            (k f) a = k f a
                            Equations
                            • MeasureTheory.SimpleFunc.hasNatSMul = inferInstance
                            Equations
                            @[simp]
                            theorem MeasureTheory.SimpleFunc.coe_pow {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Monoid β] (f : MeasureTheory.SimpleFunc α β) (n : ) :
                            (f ^ n) = f ^ n
                            theorem MeasureTheory.SimpleFunc.pow_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Monoid β] (n : ) (f : MeasureTheory.SimpleFunc α β) (a : α) :
                            (f ^ n) a = f a ^ n
                            Equations
                            @[simp]
                            theorem MeasureTheory.SimpleFunc.coe_zpow {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [DivInvMonoid β] (f : MeasureTheory.SimpleFunc α β) (z : ) :
                            (f ^ z) = f ^ z
                            theorem MeasureTheory.SimpleFunc.zpow_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [DivInvMonoid β] (z : ) (f : MeasureTheory.SimpleFunc α β) (a : α) :
                            (f ^ z) a = f a ^ z
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Equations
                            • One or more equations did not get rendered due to their size.
                            instance MeasureTheory.SimpleFunc.instModule {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {K : Type u_5} [Semiring K] [AddCommMonoid β] [Module K β] :
                            Equations
                            • One or more equations did not get rendered due to their size.
                            theorem MeasureTheory.SimpleFunc.smul_eq_map {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {K : Type u_5} [SMul K β] (k : K) (f : MeasureTheory.SimpleFunc α β) :
                            k f = MeasureTheory.SimpleFunc.map (fun (x : β) => k x) f
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Equations
                            Equations
                            Equations
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Equations
                            • MeasureTheory.SimpleFunc.instBoundedOrder = let src := MeasureTheory.SimpleFunc.instOrderBot; let src_1 := MeasureTheory.SimpleFunc.instOrderTop; BoundedOrder.mk
                            theorem MeasureTheory.SimpleFunc.finset_sup_apply {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] [SemilatticeSup β] [OrderBot β] {f : γMeasureTheory.SimpleFunc α β} (s : Finset γ) (a : α) :
                            (Finset.sup s f) a = Finset.sup s fun (c : γ) => (f c) a

                            Restrict a simple function f : α →ₛ β to a set s. If s is measurable, then f.restrict s a = if a ∈ s then f a else 0, otherwise f.restrict s = const α 0.

                            Equations
                            Instances For
                              @[simp]
                              theorem MeasureTheory.SimpleFunc.restrict_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Zero β] (f : MeasureTheory.SimpleFunc α β) {s : Set α} (hs : MeasurableSet s) (a : α) :
                              theorem MeasureTheory.SimpleFunc.restrict_preimage {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Zero β] (f : MeasureTheory.SimpleFunc α β) {s : Set α} (hs : MeasurableSet s) {t : Set β} (ht : 0t) :
                              theorem MeasureTheory.SimpleFunc.restrict_preimage_singleton {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Zero β] (f : MeasureTheory.SimpleFunc α β) {s : Set α} (hs : MeasurableSet s) {r : β} (hr : r 0) :
                              def MeasureTheory.SimpleFunc.approx {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [SemilatticeSup β] [OrderBot β] [Zero β] (i : β) (f : αβ) (n : ) :

                              Fix a sequence i : ℕ → β. Given a function α → β, its n-th approximation by simple functions is defined so that in case β = ℝ≥0∞ it sends each a to the supremum of the set {i k | k ≤ n ∧ i k ≤ f a}, see approx_apply and iSup_approx_apply for details.

                              Equations
                              Instances For
                                theorem MeasureTheory.SimpleFunc.approx_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [SemilatticeSup β] [OrderBot β] [Zero β] [TopologicalSpace β] [OrderClosedTopology β] [MeasurableSpace β] [OpensMeasurableSpace β] {i : β} {f : αβ} {n : } (a : α) (hf : Measurable f) :
                                (MeasureTheory.SimpleFunc.approx i f n) a = Finset.sup (Finset.range n) fun (k : ) => if i k f a then i k else 0
                                theorem MeasureTheory.SimpleFunc.monotone_approx {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [SemilatticeSup β] [OrderBot β] [Zero β] (i : β) (f : αβ) :
                                theorem MeasureTheory.SimpleFunc.approx_comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] [SemilatticeSup β] [OrderBot β] [Zero β] [TopologicalSpace β] [OrderClosedTopology β] [MeasurableSpace β] [OpensMeasurableSpace β] [MeasurableSpace γ] {i : β} {f : γβ} {g : αγ} {n : } (a : α) (hf : Measurable f) (hg : Measurable g) :
                                theorem MeasureTheory.SimpleFunc.iSup_approx_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [TopologicalSpace β] [CompleteLattice β] [OrderClosedTopology β] [Zero β] [MeasurableSpace β] [OpensMeasurableSpace β] (i : β) (f : αβ) (a : α) (hf : Measurable f) (h_zero : 0 = ) :
                                ⨆ (n : ), (MeasureTheory.SimpleFunc.approx i f n) a = ⨆ (k : ), ⨆ (_ : i k f a), i k

                                A sequence of ℝ≥0∞s such that its range is the set of non-negative rational numbers.

                                Equations
                                Instances For

                                  Approximate a function α → ℝ≥0∞ by a sequence of simple functions.

                                  Equations
                                  Instances For
                                    theorem MeasureTheory.SimpleFunc.iSup_eapprox_apply {α : Type u_1} [MeasurableSpace α] (f : αENNReal) (hf : Measurable f) (a : α) :
                                    ⨆ (n : ), (MeasureTheory.SimpleFunc.eapprox f n) a = f a
                                    theorem MeasureTheory.SimpleFunc.eapprox_comp {α : Type u_1} {γ : Type u_3} [MeasurableSpace α] [MeasurableSpace γ] {f : γENNReal} {g : αγ} {n : } (hf : Measurable f) (hg : Measurable g) :

                                    Approximate a function α → ℝ≥0∞ by a series of simple functions taking their values in ℝ≥0.

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      theorem MeasureTheory.SimpleFunc.sum_eapproxDiff {α : Type u_1} [MeasurableSpace α] (f : αENNReal) (n : ) (a : α) :
                                      theorem MeasureTheory.SimpleFunc.tsum_eapproxDiff {α : Type u_1} [MeasurableSpace α] (f : αENNReal) (hf : Measurable f) (a : α) :
                                      ∑' (n : ), ((MeasureTheory.SimpleFunc.eapproxDiff f n) a) = f a

                                      Integral of a simple function whose codomain is ℝ≥0∞.

                                      Equations
                                      Instances For
                                        theorem MeasureTheory.SimpleFunc.lintegral_eq_of_subset {α : Type u_1} {m : MeasurableSpace α} {μ : MeasureTheory.Measure α} (f : MeasureTheory.SimpleFunc α ENNReal) {s : Finset ENNReal} (hs : ∀ (x : α), f x 0μ (f ⁻¹' {f x}) 0f x s) :
                                        MeasureTheory.SimpleFunc.lintegral f μ = Finset.sum s fun (x : ENNReal) => x * μ (f ⁻¹' {x})

                                        Calculate the integral of (g ∘ f), where g : β → ℝ≥0∞ and f : α →ₛ β.

                                        Integral of a simple function α →ₛ ℝ≥0∞ as a bilinear map.

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

                                          SimpleFunc.lintegral depends only on the measures of f ⁻¹' {y}.

                                          theorem MeasureTheory.SimpleFunc.lintegral_map' {α : Type u_1} {m : MeasurableSpace α} {μ : MeasureTheory.Measure α} {β : Type u_5} [MeasurableSpace β] {μ' : MeasureTheory.Measure β} (f : MeasureTheory.SimpleFunc α ENNReal) (g : MeasureTheory.SimpleFunc β ENNReal) (m' : αβ) (eq : ∀ (a : α), f a = g (m' a)) (h : ∀ (s : Set β), MeasurableSet sμ' s = μ (m' ⁻¹' s)) :
                                          theorem MeasureTheory.SimpleFunc.support_eq {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Zero β] (f : MeasureTheory.SimpleFunc α β) :
                                          Function.support f = ⋃ y ∈ Finset.filter (fun (y : β) => y 0) (MeasureTheory.SimpleFunc.range f), f ⁻¹' {y}

                                          A SimpleFunc has finite measure support if it is equal to 0 outside of a set of finite measure.

                                          Equations
                                          Instances For
                                            theorem MeasureTheory.SimpleFunc.finMeasSupp_iff {α : Type u_1} {β : Type u_2} {m : MeasurableSpace α} [Zero β] {μ : MeasureTheory.Measure α} {f : MeasureTheory.SimpleFunc α β} :
                                            MeasureTheory.SimpleFunc.FinMeasSupp f μ ∀ (y : β), y 0μ (f ⁻¹' {y}) <
                                            theorem MeasureTheory.SimpleFunc.FinMeasSupp.of_map {α : Type u_1} {β : Type u_2} {γ : Type u_3} {m : MeasurableSpace α} [Zero β] [Zero γ] {μ : MeasureTheory.Measure α} {f : MeasureTheory.SimpleFunc α β} {g : βγ} (h : MeasureTheory.SimpleFunc.FinMeasSupp (MeasureTheory.SimpleFunc.map g f) μ) (hg : ∀ (b : β), g b = 0b = 0) :
                                            theorem MeasureTheory.SimpleFunc.FinMeasSupp.map_iff {α : Type u_1} {β : Type u_2} {γ : Type u_3} {m : MeasurableSpace α} [Zero β] [Zero γ] {μ : MeasureTheory.Measure α} {f : MeasureTheory.SimpleFunc α β} {g : βγ} (hg : ∀ {b : β}, g b = 0 b = 0) :
                                            theorem MeasureTheory.SimpleFunc.induction {α : Type u_5} {γ : Type u_6} [MeasurableSpace α] [AddMonoid γ] {P : MeasureTheory.SimpleFunc α γProp} (h_ind : ∀ (c : γ) {s : Set α} (hs : MeasurableSet s), P (MeasureTheory.SimpleFunc.piecewise s hs (MeasureTheory.SimpleFunc.const α c) (MeasureTheory.SimpleFunc.const α 0))) (h_add : ∀ ⦃f g : MeasureTheory.SimpleFunc α γ⦄, Disjoint (Function.support f) (Function.support g)P fP gP (f + g)) (f : MeasureTheory.SimpleFunc α γ) :
                                            P f

                                            To prove something for an arbitrary simple function, it suffices to show that the property holds for (multiples of) characteristic functions and is closed under addition (of functions with disjoint support).

                                            It is possible to make the hypotheses in h_add a bit stronger, and such conditions can be added once we need them (for example it is only necessary to consider the case where g is a multiple of a characteristic function, and that this multiple doesn't appear in the image of f)

                                            theorem Measurable.add_simpleFunc {α : Type u_1} {E : Type u_5} :
                                            ∀ {x : MeasurableSpace α} [inst : MeasurableSpace E] [inst_1 : AddGroup E] [inst_2 : MeasurableAdd E] {g : αE}, Measurable g∀ (f : MeasureTheory.SimpleFunc α E), Measurable (g + f)

                                            In a topological vector space, the addition of a measurable function and a simple function is measurable.

                                            theorem Measurable.simpleFunc_add {α : Type u_1} {E : Type u_5} :
                                            ∀ {x : MeasurableSpace α} [inst : MeasurableSpace E] [inst_1 : AddGroup E] [inst_2 : MeasurableAdd E] {g : αE}, Measurable g∀ (f : MeasureTheory.SimpleFunc α E), Measurable (f + g)

                                            In a topological vector space, the addition of a simple function and a measurable function is measurable.

                                            theorem Measurable.ennreal_induction {α : Type u_1} [MeasurableSpace α] {P : (αENNReal)Prop} (h_ind : ∀ (c : ENNReal) ⦃s : Set α⦄, MeasurableSet sP (Set.indicator s fun (x : α) => c)) (h_add : ∀ ⦃f g : αENNReal⦄, Disjoint (Function.support f) (Function.support g)Measurable fMeasurable gP fP gP (f + g)) (h_iSup : ∀ ⦃f : αENNReal⦄, (∀ (n : ), Measurable (f n))Monotone f(∀ (n : ), P (f n))P fun (x : α) => ⨆ (n : ), f n x) ⦃f : αENNReal (hf : Measurable f) :
                                            P f

                                            To prove something for an arbitrary measurable function into ℝ≥0∞, it suffices to show that the property holds for (multiples of) characteristic functions and is closed under addition and supremum of increasing sequences of functions.

                                            It is possible to make the hypotheses in the induction steps a bit stronger, and such conditions can be added once we need them (for example in h_add it is only necessary to consider the sum of a simple function with a multiple of a characteristic function and that the intersection of their images is a subset of {0}.