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
    @[implicit_reducible]
    instance MeasureTheory.SimpleFunc.instFunLike {α : Type u_1} {β : Type u_2} [MeasurableSpace α] :
    FunLike (SimpleFunc α β) α β
    theorem MeasureTheory.SimpleFunc.coe_injective {α : Type u_1} {β : Type u_2} [MeasurableSpace α] f g : SimpleFunc α β (H : f = g) :
    f = g
    theorem MeasureTheory.SimpleFunc.ext {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {f g : SimpleFunc α β} (H : ∀ (a : α), f a = g a) :
    f = g
    theorem MeasureTheory.SimpleFunc.ext_iff {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {f g : SimpleFunc α β} :
    f = g ∀ (a : α), f a = g a
    @[simp]
    theorem MeasureTheory.SimpleFunc.coe_mk {α : Type u_1} {β : Type u_2} [MeasurableSpace α] (f : αβ) (h : ∀ (x : β), MeasurableSet (f ⁻¹' {x})) (h' : (Set.range f).Finite) :
    { toFun := f, measurableSet_fiber' := h, finite_range' := h' } = f
    theorem MeasureTheory.SimpleFunc.apply_mk {α : Type u_1} {β : Type u_2} [MeasurableSpace α] (f : αβ) (h : ∀ (x : β), MeasurableSet (f ⁻¹' {x})) (h' : (Set.range f).Finite) (x : α) :
    { toFun := f, measurableSet_fiber' := h, finite_range' := h' } x = f x
    def MeasureTheory.SimpleFunc.ofFinite {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Finite α] [MeasurableSingletonClass α] (f : αβ) :

    Simple function defined on a finite type.

    Instances For

      Simple function defined on the empty type.

      Instances For
        noncomputable def MeasureTheory.SimpleFunc.range {α : Type u_1} {β : Type u_2} [MeasurableSpace α] (f : SimpleFunc α β) :

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

        Instances For
          @[simp]
          theorem MeasureTheory.SimpleFunc.mem_range {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {f : SimpleFunc α β} {b : β} :
          b f.range b Set.range f
          theorem MeasureTheory.SimpleFunc.mem_range_self {α : Type u_1} {β : Type u_2} [MeasurableSpace α] (f : SimpleFunc α β) (x : α) :
          f x f.range
          @[simp]
          theorem MeasureTheory.SimpleFunc.coe_range {α : Type u_1} {β : Type u_2} [MeasurableSpace α] (f : SimpleFunc α β) :
          f.range = Set.range f
          theorem MeasureTheory.SimpleFunc.mem_range_of_measure_ne_zero {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {f : SimpleFunc α β} {x : β} {μ : Measure α} (H : μ (f ⁻¹' {x}) 0) :
          x f.range
          theorem MeasureTheory.SimpleFunc.forall_mem_range {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {f : SimpleFunc α β} {p : βProp} :
          (∀ yf.range, p y) ∀ (x : α), p (f x)
          theorem MeasureTheory.SimpleFunc.exists_range_iff {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {f : SimpleFunc α β} {p : βProp} :
          (∃ yf.range, p y) ∃ (x : α), p (f x)
          theorem MeasureTheory.SimpleFunc.preimage_eq_empty_iff {α : Type u_1} {β : Type u_2} [MeasurableSpace α] (f : SimpleFunc α β) (b : β) :
          f ⁻¹' {b} = bf.range
          theorem MeasureTheory.SimpleFunc.exists_forall_le {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Nonempty β] [Preorder β] [IsDirectedOrder β] (f : SimpleFunc α β) :
          ∃ (C : β), ∀ (x : α), f x C
          def MeasureTheory.SimpleFunc.const (α : Type u_5) {β : Type u_6} [MeasurableSpace α] (b : β) :

          Constant function as a SimpleFunc.

          Instances For
            @[implicit_reducible]
            instance MeasureTheory.SimpleFunc.instInhabited {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Inhabited β] :
            Inhabited (SimpleFunc α β)
            theorem MeasureTheory.SimpleFunc.const_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] (a : α) (b : β) :
            (const α b) a = b
            @[simp]
            theorem MeasureTheory.SimpleFunc.coe_const {α : Type u_1} {β : Type u_2} [MeasurableSpace α] (b : β) :
            (const α b) = Function.const α b
            @[simp]
            theorem MeasureTheory.SimpleFunc.range_const {β : Type u_2} (α : Type u_5) [MeasurableSpace α] [Nonempty α] (b : β) :
            (const α b).range = {b}
            theorem MeasureTheory.SimpleFunc.range_const_subset {β : Type u_2} (α : Type u_5) [MeasurableSpace α] (b : β) :
            (const α b).range {b}
            theorem MeasureTheory.SimpleFunc.simpleFunc_bot {β : Type u_2} {α : Type u_5} (f : SimpleFunc α β) [Nonempty β] :
            ∃ (c : β), ∀ (x : α), f x = c
            theorem MeasureTheory.SimpleFunc.simpleFunc_bot' {β : Type u_2} {α : Type u_5} [Nonempty β] (f : SimpleFunc α β) :
            ∃ (c : β), f = const α c
            theorem MeasureTheory.SimpleFunc.measurableSet_cut {α : Type u_1} {β : Type u_2} [MeasurableSpace α] (r : αβProp) (f : SimpleFunc α β) (h : ∀ (b : β), MeasurableSet {a : α | r a b}) :
            MeasurableSet {a : α | r a (f a)}
            theorem MeasureTheory.SimpleFunc.measurable {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] (f : SimpleFunc α β) :

            A simple function is measurable

            theorem MeasureTheory.SimpleFunc.aemeasurable {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] {μ : Measure α} (f : SimpleFunc α β) :
            AEMeasurable (⇑f) μ
            theorem MeasureTheory.SimpleFunc.sum_measure_preimage_singleton {α : Type u_1} {β : Type u_2} [MeasurableSpace α] (f : SimpleFunc α β) {μ : Measure α} (s : Finset β) :
            ys, μ (f ⁻¹' {y}) = μ (f ⁻¹' s)
            theorem MeasureTheory.SimpleFunc.sum_range_measure_preimage_singleton {α : Type u_1} {β : Type u_2} [MeasurableSpace α] (f : SimpleFunc α β) (μ : Measure α) :
            yf.range, μ (f ⁻¹' {y}) = μ Set.univ
            noncomputable def MeasureTheory.SimpleFunc.piecewise {α : Type u_1} {β : Type u_2} [MeasurableSpace α] (s : Set α) (hs : MeasurableSet s) (f g : SimpleFunc α β) :

            If-then-else as a SimpleFunc.

            Instances For
              @[simp]
              theorem MeasureTheory.SimpleFunc.coe_piecewise {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {s : Set α} (hs : MeasurableSet s) (f g : SimpleFunc α β) :
              (piecewise s hs f g) = s.piecewise f g
              theorem MeasureTheory.SimpleFunc.piecewise_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {s : Set α} (hs : MeasurableSet s) (f g : SimpleFunc α β) (a : α) :
              (piecewise s hs f g) a = if a s then f a else g a
              @[simp]
              theorem MeasureTheory.SimpleFunc.piecewise_compl {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {s : Set α} (hs : MeasurableSet s) (f g : SimpleFunc α β) :
              piecewise s hs f g = piecewise s g f
              @[simp]
              theorem MeasureTheory.SimpleFunc.piecewise_univ {α : Type u_1} {β : Type u_2} [MeasurableSpace α] (f g : SimpleFunc α β) :
              piecewise Set.univ f g = f
              @[simp]
              theorem MeasureTheory.SimpleFunc.piecewise_empty {α : Type u_1} {β : Type u_2} [MeasurableSpace α] (f g : SimpleFunc α β) :
              piecewise f g = g
              @[simp]
              theorem MeasureTheory.SimpleFunc.piecewise_same {α : Type u_1} {β : Type u_2} [MeasurableSpace α] (f : SimpleFunc α β) {s : Set α} (hs : MeasurableSet s) :
              piecewise s hs f f = f
              theorem MeasureTheory.SimpleFunc.support_indicator {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Zero β] {s : Set α} (hs : MeasurableSet s) (f : SimpleFunc α β) :
              Function.support (piecewise s hs f (const α 0)) = s Function.support f
              theorem MeasureTheory.SimpleFunc.range_indicator {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {s : Set α} (hs : MeasurableSet s) (hs_nonempty : s.Nonempty) (hs_ne_univ : s Set.univ) (x y : β) :
              (piecewise s hs (const α x) (const α y)).range = {x, y}
              theorem MeasureTheory.SimpleFunc.measurable_bind {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] [MeasurableSpace γ] (f : 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 : SimpleFunc α β) (g : β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.

              Instances For
                @[simp]
                theorem MeasureTheory.SimpleFunc.bind_apply {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] (f : SimpleFunc α β) (g : βSimpleFunc α γ) (a : α) :
                (f.bind g) a = (g (f a)) a
                def MeasureTheory.SimpleFunc.map {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] (g : βγ) (f : SimpleFunc α β) :

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

                Instances For
                  theorem MeasureTheory.SimpleFunc.map_apply {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] (g : βγ) (f : SimpleFunc α β) (a : α) :
                  (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 : SimpleFunc α β) :
                  map h (map g f) = map (h g) f
                  @[simp]
                  theorem MeasureTheory.SimpleFunc.coe_map {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] (g : βγ) (f : SimpleFunc α β) :
                  (map g f) = g f
                  @[simp]
                  theorem MeasureTheory.SimpleFunc.range_map {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] [DecidableEq γ] (g : βγ) (f : SimpleFunc α β) :
                  @[simp]
                  theorem MeasureTheory.SimpleFunc.map_const {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] (g : βγ) (b : β) :
                  map g (const α b) = const α (g b)
                  theorem MeasureTheory.SimpleFunc.map_preimage {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] (f : SimpleFunc α β) (g : βγ) (s : Set γ) :
                  (map g f) ⁻¹' s = f ⁻¹' ({bf.range | g b s})
                  theorem MeasureTheory.SimpleFunc.map_preimage_singleton {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] (f : SimpleFunc α β) (g : βγ) (c : γ) :
                  (map g f) ⁻¹' {c} = f ⁻¹' ({bf.range | g b = c})
                  def MeasureTheory.SimpleFunc.comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] [MeasurableSpace β] (f : SimpleFunc β γ) (g : αβ) (hgm : Measurable g) :

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

                  Instances For
                    @[simp]
                    theorem MeasureTheory.SimpleFunc.coe_comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] [MeasurableSpace β] (f : SimpleFunc β γ) {g : αβ} (hgm : Measurable g) :
                    (f.comp g hgm) = f g
                    theorem MeasureTheory.SimpleFunc.range_comp_subset_range {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] [MeasurableSpace β] (f : SimpleFunc β γ) {g : αβ} (hgm : Measurable g) :
                    (f.comp g hgm).range f.range
                    noncomputable def MeasureTheory.SimpleFunc.extend {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] [MeasurableSpace β] (f₁ : SimpleFunc α γ) (g : αβ) (hg : MeasurableEmbedding g) (f₂ : 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.

                    Instances For
                      @[simp]
                      theorem MeasureTheory.SimpleFunc.extend_apply {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] [MeasurableSpace β] (f₁ : SimpleFunc α γ) {g : αβ} (hg : MeasurableEmbedding g) (f₂ : SimpleFunc β γ) (x : α) :
                      (f₁.extend 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₁ : SimpleFunc α γ) {g : αβ} (hg : MeasurableEmbedding g) (f₂ : SimpleFunc β γ) {y : β} (h : ¬∃ (x : α), g x = y) :
                      (f₁.extend 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₁ : SimpleFunc α γ) {g : αβ} (hg : MeasurableEmbedding g) (f₂ : SimpleFunc β γ) :
                      (f₁.extend g hg f₂) g = f₁
                      @[simp]
                      theorem MeasureTheory.SimpleFunc.extend_comp_eq {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] [MeasurableSpace β] (f₁ : SimpleFunc α γ) {g : αβ} (hg : MeasurableEmbedding g) (f₂ : SimpleFunc β γ) :
                      (f₁.extend g hg f₂).comp g = f₁
                      def MeasureTheory.SimpleFunc.seq {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] (f : SimpleFunc α (βγ)) (g : 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).

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

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

                        Instances For
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.pair_apply {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] (f : SimpleFunc α β) (g : SimpleFunc α γ) (a : α) :
                          (f.pair g) a = (f a, g a)
                          theorem MeasureTheory.SimpleFunc.pair_preimage {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] (f : SimpleFunc α β) (g : SimpleFunc α γ) (s : Set β) (t : Set γ) :
                          (f.pair g) ⁻¹' s ×ˢ t = f ⁻¹' s g ⁻¹' t
                          theorem MeasureTheory.SimpleFunc.pair_preimage_singleton {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] (f : SimpleFunc α β) (g : SimpleFunc α γ) (b : β) (c : γ) :
                          (f.pair g) ⁻¹' {(b, c)} = f ⁻¹' {b} g ⁻¹' {c}
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.map_fst_pair {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] (f : SimpleFunc α β) (g : SimpleFunc α γ) :
                          map Prod.fst (f.pair g) = f
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.map_snd_pair {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] (f : SimpleFunc α β) (g : SimpleFunc α γ) :
                          map Prod.snd (f.pair g) = g
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.bind_const {α : Type u_1} {β : Type u_2} [MeasurableSpace α] (f : SimpleFunc α β) :
                          f.bind (const α) = f
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.instOne {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [One β] :
                          One (SimpleFunc α β)
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.instZero {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Zero β] :
                          Zero (SimpleFunc α β)
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.instMul {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Mul β] :
                          Mul (SimpleFunc α β)
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.instAdd {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Add β] :
                          Add (SimpleFunc α β)
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.instDiv {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Div β] :
                          Div (SimpleFunc α β)
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.instSub {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Sub β] :
                          Sub (SimpleFunc α β)
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.instInv {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Inv β] :
                          Inv (SimpleFunc α β)
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.instNeg {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Neg β] :
                          Neg (SimpleFunc α β)
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.instSup {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Max β] :
                          Max (SimpleFunc α β)
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.instInf {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Min β] :
                          Min (SimpleFunc α β)
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.instLE {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [LE β] :
                          LE (SimpleFunc α β)
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.const_one {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [One β] :
                          const α 1 = 1
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.const_zero {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Zero β] :
                          const α 0 = 0
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.coe_one {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [One β] :
                          1 = 1
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.coe_zero {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Zero β] :
                          0 = 0
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.coe_mul {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Mul β] (f g : SimpleFunc α β) :
                          (f * g) = f * g
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.coe_add {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Add β] (f g : SimpleFunc α β) :
                          (f + g) = f + g
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.coe_inv {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Inv β] (f : SimpleFunc α β) :
                          f⁻¹ = (⇑f)⁻¹
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.coe_neg {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Neg β] (f : SimpleFunc α β) :
                          ⇑(-f) = -f
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.coe_div {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Div β] (f g : SimpleFunc α β) :
                          (f / g) = f / g
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.coe_sub {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Sub β] (f g : SimpleFunc α β) :
                          (f - g) = f - g
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.coe_sup {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Max β] (f g : SimpleFunc α β) :
                          (fg) = fg
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.coe_inf {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Min β] (f g : SimpleFunc α β) :
                          (fg) = fg
                          theorem MeasureTheory.SimpleFunc.mul_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Mul β] (f g : SimpleFunc α β) (a : α) :
                          (f * g) a = f a * g a
                          theorem MeasureTheory.SimpleFunc.add_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Add β] (f g : SimpleFunc α β) (a : α) :
                          (f + g) a = f a + g a
                          theorem MeasureTheory.SimpleFunc.div_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Div β] (f g : SimpleFunc α β) (x : α) :
                          (f / g) x = f x / g x
                          theorem MeasureTheory.SimpleFunc.sub_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Sub β] (f g : SimpleFunc α β) (x : α) :
                          (f - g) x = f x - g x
                          theorem MeasureTheory.SimpleFunc.inv_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Inv β] (f : SimpleFunc α β) (x : α) :
                          f⁻¹ x = (f x)⁻¹
                          theorem MeasureTheory.SimpleFunc.neg_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Neg β] (f : SimpleFunc α β) (x : α) :
                          (-f) x = -f x
                          theorem MeasureTheory.SimpleFunc.sup_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Max β] (f g : SimpleFunc α β) (a : α) :
                          (fg) a = f ag a
                          theorem MeasureTheory.SimpleFunc.inf_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Min β] (f g : SimpleFunc α β) (a : α) :
                          (fg) a = f ag a
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.range_one {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Nonempty α] [One β] :
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.range_zero {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Nonempty α] [Zero β] :
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.range_eq_empty_of_isEmpty {α : Type u_1} [MeasurableSpace α] {β : Type u_5} [ : IsEmpty α] (f : SimpleFunc α β) :
                          f.range =
                          theorem MeasureTheory.SimpleFunc.eq_zero_of_mem_range_zero {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Zero β] {y : β} :
                          y SimpleFunc.range 0y = 0
                          theorem MeasureTheory.SimpleFunc.mul_eq_map₂ {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Mul β] (f g : SimpleFunc α β) :
                          f * g = map (fun (p : β × β) => p.1 * p.2) (f.pair g)
                          theorem MeasureTheory.SimpleFunc.add_eq_map₂ {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Add β] (f g : SimpleFunc α β) :
                          f + g = map (fun (p : β × β) => p.1 + p.2) (f.pair g)
                          theorem MeasureTheory.SimpleFunc.sup_eq_map₂ {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Max β] (f g : SimpleFunc α β) :
                          fg = map (fun (p : β × β) => p.1p.2) (f.pair g)
                          theorem MeasureTheory.SimpleFunc.const_mul_eq_map {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Mul β] (f : SimpleFunc α β) (b : β) :
                          const α b * f = map (fun (a : β) => b * a) f
                          theorem MeasureTheory.SimpleFunc.const_add_eq_map {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Add β] (f : SimpleFunc α β) (b : β) :
                          const α b + f = map (fun (a : β) => b + a) f
                          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₁ f₂ : SimpleFunc α β) :
                          map g (f₁ * f₂) = map g f₁ * map g f₂
                          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₁ f₂ : SimpleFunc α β) :
                          map g (f₁ + f₂) = map g f₁ + map g f₂
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.instSMul {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {K : Type u_5} [SMul K β] :
                          SMul K (SimpleFunc α β)
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.instVAdd {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {K : Type u_5} [VAdd K β] :
                          VAdd K (SimpleFunc α β)
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.coe_smul {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {K : Type u_5} [SMul K β] (c : K) (f : SimpleFunc α β) :
                          (c f) = c f
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.coe_vadd {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {K : Type u_5} [VAdd K β] (c : K) (f : SimpleFunc α β) :
                          ⇑(c +ᵥ f) = c +ᵥ f
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.smul_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {K : Type u_5} [SMul K β] (k : K) (f : SimpleFunc α β) (a : α) :
                          (k f) a = k f a
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.vadd_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {K : Type u_5} [VAdd K β] (k : K) (f : SimpleFunc α β) (a : α) :
                          (k +ᵥ f) a = k +ᵥ f a
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.hasNatSMul {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [AddMonoid β] :
                          SMul (SimpleFunc α β)
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.hasNatPow {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Monoid β] :
                          Pow (SimpleFunc α β)
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.coe_pow {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Monoid β] (f : SimpleFunc α β) (n : ) :
                          (f ^ n) = f ^ n
                          theorem MeasureTheory.SimpleFunc.pow_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Monoid β] (n : ) (f : SimpleFunc α β) (a : α) :
                          (f ^ n) a = f a ^ n
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.hasIntPow {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [DivInvMonoid β] :
                          Pow (SimpleFunc α β)
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.coe_zpow {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [DivInvMonoid β] (f : SimpleFunc α β) (z : ) :
                          (f ^ z) = f ^ z
                          theorem MeasureTheory.SimpleFunc.zpow_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [DivInvMonoid β] (z : ) (f : SimpleFunc α β) (a : α) :
                          (f ^ z) a = f a ^ z
                          @[implicit_reducible]
                          @[implicit_reducible]
                          @[implicit_reducible]
                          @[implicit_reducible]
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.instMonoid {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Monoid β] :
                          @[implicit_reducible]
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.instGroup {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Group β] :
                          @[implicit_reducible]
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.instMulAction {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {K : Type u_5} [Monoid K] [MulAction K β] :
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.instModule {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {K : Type u_5} [Semiring K] [AddCommMonoid β] [Module K β] :
                          Module K (SimpleFunc α β)
                          theorem MeasureTheory.SimpleFunc.smul_eq_map {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {K : Type u_5} [SMul K β] (k : K) (f : SimpleFunc α β) :
                          k f = map (fun (x : β) => k x) f
                          theorem MeasureTheory.SimpleFunc.smul_const {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {K : Type u_5} [SMul K β] (k : K) (b : β) :
                          k const α b = const α (k b)
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.instNatCast {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [NatCast β] :
                          NatCast (SimpleFunc α β)
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.coe_natCast {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [NatCast β] (n : ) :
                          n = fun (x : α) => n
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.instIntCast {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [IntCast β] :
                          IntCast (SimpleFunc α β)
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.coe_intCast {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [IntCast β] (n : ) :
                          n = fun (x : α) => n
                          @[implicit_reducible]
                          @[implicit_reducible]
                          @[implicit_reducible]
                          @[implicit_reducible]
                          @[implicit_reducible]
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.instRing {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Ring β] :
                          instance MeasureTheory.SimpleFunc.instIsScalarTower {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] {K : Type u_5} [SMul K γ] [SMul γ β] [SMul K β] [IsScalarTower K γ β] :
                          instance MeasureTheory.SimpleFunc.instSMulCommClass {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] {K : Type u_5} [SMul γ β] [SMul K β] [SMulCommClass K γ β] :
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.instAlgebra {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {K : Type u_5} [CommSemiring K] [Semiring β] [Algebra K β] :
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.const_algebraMap {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {K : Type u_5} [CommSemiring K] [Semiring β] [Algebra K β] (k : K) :
                          const α ((algebraMap K β) k) = (algebraMap K (SimpleFunc α β)) k
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.coe_algebraMap {α : Type u_1} {β : Type u_2} [MeasurableSpace α] {K : Type u_5} [CommSemiring K] [Semiring β] [Algebra K β] (k : K) (x : α) :
                          ((algebraMap K (SimpleFunc α β)) k) x = (algebraMap K (αβ)) k x
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.instStar {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Star β] :
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.coe_star {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Star β] {f : SimpleFunc α β} :
                          (star f) = star f
                          @[implicit_reducible]
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.instStarMul {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Mul β] [StarMul β] :
                          @[implicit_reducible]
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.coe_le_coe {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Preorder β] {f g : SimpleFunc α β} :
                          f g f g
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.coe_lt_coe {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Preorder β] {f g : SimpleFunc α β} :
                          f < g f < g
                          @[deprecated MeasureTheory.SimpleFunc.coe_le_coe (since := "2025-10-21")]
                          theorem MeasureTheory.SimpleFunc.coe_le {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Preorder β] {f g : SimpleFunc α β} :
                          f g f g

                          Alias of MeasureTheory.SimpleFunc.coe_le_coe.

                          @[simp]
                          theorem MeasureTheory.SimpleFunc.mk_le_mk {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Preorder β] {f g : αβ} {hf : ∀ (x : β), MeasurableSet (f ⁻¹' {x})} {hg : ∀ (x : β), MeasurableSet (g ⁻¹' {x})} {hf' : (Set.range f).Finite} {hg' : (Set.range g).Finite} :
                          { toFun := f, measurableSet_fiber' := hf, finite_range' := hf' } { toFun := g, measurableSet_fiber' := hg, finite_range' := hg' } f g
                          @[simp]
                          theorem MeasureTheory.SimpleFunc.mk_lt_mk {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Preorder β] {f g : αβ} {hf : ∀ (x : β), MeasurableSet (f ⁻¹' {x})} {hg : ∀ (x : β), MeasurableSet (g ⁻¹' {x})} {hf' : (Set.range f).Finite} {hg' : (Set.range g).Finite} :
                          { toFun := f, measurableSet_fiber' := hf, finite_range' := hf' } < { toFun := g, measurableSet_fiber' := hg, finite_range' := hg' } f < g
                          theorem MeasureTheory.SimpleFunc.piecewise_mono {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Preorder β] {s : Set α} {f₁ f₂ g₁ g₂ : SimpleFunc α β} {hs : MeasurableSet s} (hf : as, f₁ a f₂ a) (hg : as, g₁ a g₂ a) :
                          piecewise s hs f₁ g₁ piecewise s hs f₂ g₂
                          @[implicit_reducible]
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.instOrderBot {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [LE β] [OrderBot β] :
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.instOrderTop {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [LE β] [OrderTop β] :
                          @[implicit_reducible]
                          instance MeasureTheory.SimpleFunc.instLattice {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Lattice β] :
                          @[implicit_reducible]
                          theorem MeasureTheory.SimpleFunc.finset_sup_apply {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] [SemilatticeSup β] [OrderBot β] {f : γSimpleFunc α β} (s : Finset γ) (a : α) :
                          (s.sup f) a = s.sup fun (c : γ) => (f c) a
                          noncomputable def MeasureTheory.SimpleFunc.restrict {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Zero β] (f : SimpleFunc α β) (s : Set α) :

                          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.

                          Instances For
                            theorem MeasureTheory.SimpleFunc.restrict_of_not_measurable {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Zero β] {f : SimpleFunc α β} {s : Set α} (hs : ¬MeasurableSet s) :
                            f.restrict s = 0
                            @[simp]
                            theorem MeasureTheory.SimpleFunc.coe_restrict {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Zero β] (f : SimpleFunc α β) {s : Set α} (hs : MeasurableSet s) :
                            (f.restrict s) = s.indicator f
                            @[simp]
                            theorem MeasureTheory.SimpleFunc.restrict_univ {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Zero β] (f : SimpleFunc α β) :
                            @[simp]
                            theorem MeasureTheory.SimpleFunc.restrict_empty {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Zero β] (f : SimpleFunc α β) :
                            f.restrict = 0
                            theorem MeasureTheory.SimpleFunc.map_restrict_of_zero {α : Type u_1} {β : Type u_2} {γ : Type u_3} [MeasurableSpace α] [Zero β] [Zero γ] {g : βγ} (hg : g 0 = 0) (f : SimpleFunc α β) (s : Set α) :
                            map g (f.restrict s) = (map g f).restrict s
                            theorem MeasureTheory.SimpleFunc.restrict_apply {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Zero β] (f : SimpleFunc α β) {s : Set α} (hs : MeasurableSet s) (a : α) :
                            (f.restrict s) a = s.indicator (⇑f) a
                            theorem MeasureTheory.SimpleFunc.restrict_preimage {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Zero β] (f : SimpleFunc α β) {s : Set α} (hs : MeasurableSet s) {t : Set β} (ht : 0t) :
                            (f.restrict s) ⁻¹' t = s f ⁻¹' t
                            theorem MeasureTheory.SimpleFunc.restrict_preimage_singleton {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Zero β] (f : SimpleFunc α β) {s : Set α} (hs : MeasurableSet s) {r : β} (hr : r 0) :
                            (f.restrict s) ⁻¹' {r} = s f ⁻¹' {r}
                            theorem MeasureTheory.SimpleFunc.mem_restrict_range {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Zero β] {r : β} {s : Set α} {f : SimpleFunc α β} (hs : MeasurableSet s) :
                            r (f.restrict s).range r = 0 s Set.univ r f '' s
                            theorem MeasureTheory.SimpleFunc.mem_image_of_mem_range_restrict {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Zero β] {r : β} {s : Set α} {f : SimpleFunc α β} (hr : r (f.restrict s).range) (h0 : r 0) :
                            r f '' s
                            theorem MeasureTheory.SimpleFunc.restrict_mono {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Zero β] [Preorder β] (s : Set α) {f g : SimpleFunc α β} (H : f g) :
                            noncomputable 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.

                            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) :
                              (approx i f n) a = (Finset.range n).sup 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) :
                              (approx i (f g) n) a = (approx i f n) (g a)
                              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 : ), (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.

                              Instances For
                                noncomputable def MeasureTheory.SimpleFunc.eapprox {α : Type u_1} [MeasurableSpace α] :
                                (αENNReal)SimpleFunc α ENNReal

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

                                Instances For
                                  theorem MeasureTheory.SimpleFunc.eapprox_lt_top {α : Type u_1} [MeasurableSpace α] (f : αENNReal) (n : ) (a : α) :
                                  (eapprox f n) a <
                                  theorem MeasureTheory.SimpleFunc.iSup_eapprox_apply {α : Type u_1} [MeasurableSpace α] {f : αENNReal} (hf : Measurable f) (a : α) :
                                  ⨆ (n : ), (eapprox f n) a = f a
                                  theorem MeasureTheory.SimpleFunc.iSup_coe_eapprox {α : Type u_1} [MeasurableSpace α] {f : αENNReal} (hf : Measurable f) :
                                  ⨆ (n : ), (eapprox f n) = f
                                  theorem MeasureTheory.SimpleFunc.eapprox_comp {α : Type u_1} {γ : Type u_3} [MeasurableSpace α] [MeasurableSpace γ] {f : γENNReal} {g : αγ} {n : } (hf : Measurable f) (hg : Measurable g) :
                                  (eapprox (f g) n) = (eapprox f n) g
                                  theorem MeasureTheory.SimpleFunc.tendsto_eapprox {α : Type u_1} [MeasurableSpace α] {f : αENNReal} (hf_meas : Measurable f) (a : α) :
                                  Filter.Tendsto (fun (n : ) => (eapprox f n) a) Filter.atTop (nhds (f a))
                                  noncomputable def MeasureTheory.SimpleFunc.eapproxDiff {α : Type u_1} [MeasurableSpace α] (f : αENNReal) :
                                  SimpleFunc α NNReal

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

                                  Instances For
                                    theorem MeasureTheory.SimpleFunc.sum_eapproxDiff {α : Type u_1} [MeasurableSpace α] (f : αENNReal) (n : ) (a : α) :
                                    kFinset.range (n + 1), ((eapproxDiff f k) a) = (eapprox f n) a
                                    theorem MeasureTheory.SimpleFunc.tsum_eapproxDiff {α : Type u_1} [MeasurableSpace α] (f : αENNReal) (hf : Measurable f) (a : α) :
                                    ∑' (n : ), ((eapproxDiff f n) a) = f a
                                    noncomputable def MeasureTheory.SimpleFunc.lintegral {α : Type u_1} {_m : MeasurableSpace α} (f : SimpleFunc α ENNReal) (μ : Measure α) :

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

                                    Instances For
                                      theorem MeasureTheory.SimpleFunc.lintegral_eq_of_subset {α : Type u_1} {m : MeasurableSpace α} {μ : Measure α} (f : SimpleFunc α ENNReal) {s : Finset ENNReal} (hs : ∀ (x : α), f x 0μ (f ⁻¹' {f x}) 0f x s) :
                                      f.lintegral μ = xs, x * μ (f ⁻¹' {x})
                                      theorem MeasureTheory.SimpleFunc.lintegral_eq_of_subset' {α : Type u_1} {m : MeasurableSpace α} {μ : Measure α} (f : SimpleFunc α ENNReal) {s : Finset ENNReal} (hs : f.range \ {0} s) :
                                      f.lintegral μ = xs, x * μ (f ⁻¹' {x})
                                      theorem MeasureTheory.SimpleFunc.map_lintegral {α : Type u_1} {β : Type u_2} {m : MeasurableSpace α} {μ : Measure α} (g : βENNReal) (f : SimpleFunc α β) :
                                      (map g f).lintegral μ = xf.range, g x * μ (f ⁻¹' {x})

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

                                      theorem MeasureTheory.SimpleFunc.add_lintegral {α : Type u_1} {m : MeasurableSpace α} {μ : Measure α} (f g : SimpleFunc α ENNReal) :
                                      (f + g).lintegral μ = f.lintegral μ + g.lintegral μ

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

                                      Instances For
                                        @[simp]
                                        theorem MeasureTheory.SimpleFunc.zero_lintegral {α : Type u_1} {m : MeasurableSpace α} {μ : Measure α} :
                                        lintegral 0 μ = 0
                                        theorem MeasureTheory.SimpleFunc.lintegral_add {α : Type u_1} {m : MeasurableSpace α} {μ ν : Measure α} (f : SimpleFunc α ENNReal) :
                                        f.lintegral (μ + ν) = f.lintegral μ + f.lintegral ν
                                        theorem MeasureTheory.SimpleFunc.lintegral_smul {α : Type u_1} {m : MeasurableSpace α} {μ : Measure α} {R : Type u_5} [SMul R ENNReal] [IsScalarTower R ENNReal ENNReal] (f : SimpleFunc α ENNReal) (c : R) :
                                        f.lintegral (c μ) = c f.lintegral μ
                                        theorem MeasureTheory.SimpleFunc.lintegral_finset_sum {α : Type u_1} {m : MeasurableSpace α} {ι : Type u_5} (f : SimpleFunc α ENNReal) (μ : ιMeasure α) (s : Finset ι) :
                                        f.lintegral (∑ is, μ i) = is, f.lintegral (μ i)
                                        theorem MeasureTheory.SimpleFunc.lintegral_sum {α : Type u_1} {m : MeasurableSpace α} {ι : Type u_5} (f : SimpleFunc α ENNReal) (μ : ιMeasure α) :
                                        f.lintegral (Measure.sum μ) = ∑' (i : ι), f.lintegral (μ i)
                                        theorem MeasureTheory.SimpleFunc.restrict_lintegral {α : Type u_1} {m : MeasurableSpace α} {μ : Measure α} (f : SimpleFunc α ENNReal) {s : Set α} (hs : MeasurableSet s) :
                                        (f.restrict s).lintegral μ = rf.range, r * μ (f ⁻¹' {r} s)
                                        theorem MeasureTheory.SimpleFunc.lintegral_restrict {α : Type u_1} {m : MeasurableSpace α} (f : SimpleFunc α ENNReal) (s : Set α) (μ : Measure α) :
                                        f.lintegral (μ.restrict s) = yf.range, y * μ (f ⁻¹' {y} s)
                                        theorem MeasureTheory.SimpleFunc.lintegral_restrict_iUnion_of_directed {α : Type u_1} {m : MeasurableSpace α} {ι : Type u_5} [Countable ι] (f : SimpleFunc α ENNReal) {s : ιSet α} (hd : Directed (fun (x1 x2 : Set α) => x1 x2) s) (μ : Measure α) :
                                        f.lintegral (μ.restrict (⋃ (i : ι), s i)) = ⨆ (i : ι), f.lintegral (μ.restrict (s i))
                                        theorem MeasureTheory.SimpleFunc.const_lintegral_restrict {α : Type u_1} {m : MeasurableSpace α} {μ : Measure α} (c : ENNReal) (s : Set α) :
                                        (const α c).lintegral (μ.restrict s) = c * μ s
                                        theorem MeasureTheory.SimpleFunc.restrict_const_lintegral {α : Type u_1} {m : MeasurableSpace α} {μ : Measure α} (c : ENNReal) {s : Set α} (hs : MeasurableSet s) :
                                        ((const α c).restrict s).lintegral μ = c * μ s
                                        theorem MeasureTheory.SimpleFunc.lintegral_mono {α : Type u_1} {m : MeasurableSpace α} {μ ν : Measure α} {f g : SimpleFunc α ENNReal} (hfg : f g) (hμν : μ ν) :

                                        SimpleFunc.lintegral is monotone both in function and in measure.

                                        theorem MeasureTheory.SimpleFunc.lintegral_eq_of_measure_preimage {α : Type u_1} {β : Type u_2} {m : MeasurableSpace α} {μ : Measure α} [MeasurableSpace β] {f : SimpleFunc α ENNReal} {g : SimpleFunc β ENNReal} {ν : Measure β} (H : ∀ (y : ENNReal), μ (f ⁻¹' {y}) = ν (g ⁻¹' {y})) :
                                        f.lintegral μ = g.lintegral ν

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

                                        theorem MeasureTheory.SimpleFunc.lintegral_congr {α : Type u_1} {m : MeasurableSpace α} {μ : Measure α} {f g : SimpleFunc α ENNReal} (h : f =ᶠ[ae μ] g) :
                                        f.lintegral μ = g.lintegral μ

                                        If two simple functions are equal a.e., then their lintegrals are equal.

                                        theorem MeasureTheory.SimpleFunc.lintegral_map' {α : Type u_1} {m : MeasurableSpace α} {μ : Measure α} {β : Type u_5} [MeasurableSpace β] {μ' : Measure β} (f : SimpleFunc α ENNReal) (g : SimpleFunc β ENNReal) (m' : αβ) (eq : ∀ (a : α), f a = g (m' a)) (h : ∀ (s : Set β), MeasurableSet sμ' s = μ (m' ⁻¹' s)) :
                                        f.lintegral μ = g.lintegral μ'
                                        theorem MeasureTheory.SimpleFunc.lintegral_map {α : Type u_1} {m : MeasurableSpace α} {μ : Measure α} {β : Type u_5} [MeasurableSpace β] (g : SimpleFunc β ENNReal) {f : αβ} (hf : Measurable f) :
                                        g.lintegral (Measure.map f μ) = (g.comp f hf).lintegral μ
                                        theorem MeasureTheory.SimpleFunc.support_eq {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [Zero β] (f : SimpleFunc α β) :
                                        Function.support f = y{yf.range | y 0}, f ⁻¹' {y}
                                        theorem MeasureTheory.SimpleFunc.measure_support_lt_top {α : Type u_1} {β : Type u_2} {m : MeasurableSpace α} [Zero β] {μ : Measure α} (f : SimpleFunc α β) (hf : ∀ (y : β), y 0μ (f ⁻¹' {y}) < ) :
                                        def MeasureTheory.SimpleFunc.FinMeasSupp {α : Type u_1} {β : Type u_2} [Zero β] {_m : MeasurableSpace α} (f : SimpleFunc α β) (μ : Measure α) :

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

                                        Instances For
                                          theorem MeasureTheory.SimpleFunc.finMeasSupp_iff_support {α : Type u_1} {β : Type u_2} {m : MeasurableSpace α} [Zero β] {μ : Measure α} {f : SimpleFunc α β} :
                                          f.FinMeasSupp μ μ (Function.support f) <
                                          theorem MeasureTheory.SimpleFunc.finMeasSupp_iff {α : Type u_1} {β : Type u_2} {m : MeasurableSpace α} [Zero β] {μ : Measure α} {f : SimpleFunc α β} :
                                          f.FinMeasSupp μ ∀ (y : β), y 0μ (f ⁻¹' {y}) <
                                          theorem MeasureTheory.SimpleFunc.FinMeasSupp.meas_preimage_singleton_ne_zero {α : Type u_1} {β : Type u_2} {m : MeasurableSpace α} [Zero β] {μ : Measure α} {f : SimpleFunc α β} (h : f.FinMeasSupp μ) {y : β} (hy : y 0) :
                                          μ (f ⁻¹' {y}) <
                                          theorem MeasureTheory.SimpleFunc.FinMeasSupp.map {α : Type u_1} {β : Type u_2} {γ : Type u_3} {m : MeasurableSpace α} [Zero β] [Zero γ] {μ : Measure α} {f : SimpleFunc α β} {g : βγ} (hf : f.FinMeasSupp μ) (hg : g 0 = 0) :
                                          (map g f).FinMeasSupp μ
                                          theorem MeasureTheory.SimpleFunc.FinMeasSupp.of_map {α : Type u_1} {β : Type u_2} {γ : Type u_3} {m : MeasurableSpace α} [Zero β] [Zero γ] {μ : Measure α} {f : SimpleFunc α β} {g : βγ} (h : (map g f).FinMeasSupp μ) (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 γ] {μ : Measure α} {f : SimpleFunc α β} {g : βγ} (hg : ∀ {b : β}, g b = 0 b = 0) :
                                          (map g f).FinMeasSupp μ f.FinMeasSupp μ
                                          theorem MeasureTheory.SimpleFunc.FinMeasSupp.pair {α : Type u_1} {β : Type u_2} {γ : Type u_3} {m : MeasurableSpace α} [Zero β] [Zero γ] {μ : Measure α} {f : SimpleFunc α β} {g : SimpleFunc α γ} (hf : f.FinMeasSupp μ) (hg : g.FinMeasSupp μ) :
                                          (f.pair g).FinMeasSupp μ
                                          theorem MeasureTheory.SimpleFunc.FinMeasSupp.map₂ {α : Type u_1} {β : Type u_2} {γ : Type u_3} {δ : Type u_4} {m : MeasurableSpace α} [Zero β] [Zero γ] {μ : Measure α} {f : SimpleFunc α β} [Zero δ] (hf : f.FinMeasSupp μ) {g : SimpleFunc α γ} (hg : g.FinMeasSupp μ) {op : βγδ} (H : op 0 0 = 0) :
                                          (map (Function.uncurry op) (f.pair g)).FinMeasSupp μ
                                          theorem MeasureTheory.SimpleFunc.FinMeasSupp.add {α : Type u_1} {m : MeasurableSpace α} {μ : Measure α} {β : Type u_5} [AddZeroClass β] {f g : SimpleFunc α β} (hf : f.FinMeasSupp μ) (hg : g.FinMeasSupp μ) :
                                          (f + g).FinMeasSupp μ
                                          theorem MeasureTheory.SimpleFunc.FinMeasSupp.mul {α : Type u_1} {m : MeasurableSpace α} {μ : Measure α} {β : Type u_5} [MulZeroClass β] {f g : SimpleFunc α β} (hf : f.FinMeasSupp μ) (hg : g.FinMeasSupp μ) :
                                          (f * g).FinMeasSupp μ
                                          theorem MeasureTheory.SimpleFunc.FinMeasSupp.lintegral_lt_top {α : Type u_1} {m : MeasurableSpace α} {μ : Measure α} {f : SimpleFunc α ENNReal} (hm : f.FinMeasSupp μ) (hf : ∀ᵐ (a : α) μ, f a ) :
                                          theorem MeasureTheory.SimpleFunc.induction {α : Type u_5} {γ : Type u_6} [MeasurableSpace α] [AddZeroClass γ] {motive : SimpleFunc α γProp} (const : ∀ (c : γ) {s : Set α} (hs : MeasurableSet s), motive (piecewise s hs (const α c) (const α 0))) (add : ∀ ⦃f g : SimpleFunc α γ⦄, Disjoint (Function.support f) (Function.support g)motive fmotive gmotive (f + g)) (f : SimpleFunc α γ) :
                                          motive 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).

                                          To use in an induction proof, the syntax is induction f using SimpleFunc.induction with.

                                          theorem MeasureTheory.SimpleFunc.induction' {α : Type u_5} {γ : Type u_6} [MeasurableSpace α] [Nonempty γ] {P : SimpleFunc α γProp} (const : ∀ (c : γ), P (const α c)) (pcw : ∀ ⦃f g : SimpleFunc α γ⦄ {s : Set α} (hs : MeasurableSet s), P fP gP (piecewise s hs f g)) (f : SimpleFunc α γ) :
                                          P f

                                          To prove something for an arbitrary simple function, it suffices to show that the property holds for constant functions and that it is closed under piecewise combinations of functions.

                                          To use in an induction proof, the syntax is induction f with.

                                          theorem Measurable.add_simpleFunc {α : Type u_1} {E : Type u_5} {x✝ : MeasurableSpace α} [MeasurableSpace E] [AddCancelMonoid E] [MeasurableAdd E] {g : αE} (hg : 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 α} [MeasurableSpace E] [AddCancelMonoid E] [MeasurableAdd E] {g : αE} (hg : 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 α} {motive : (αENNReal)Prop} (indicator : ∀ (c : ENNReal) ⦃s : Set α⦄, MeasurableSet smotive (s.indicator fun (x : α) => c)) (add : ∀ ⦃f g : αENNReal⦄, Disjoint (Function.support f) (Function.support g)Measurable fMeasurable gmotive fmotive gmotive (f + g)) (iSup : ∀ ⦃f : αENNReal⦄, (∀ (n : ), Measurable (f n))Monotone f(∀ (n : ), motive (f n))motive fun (x : α) => ⨆ (n : ), f n x) f : αENNReal (hf : Measurable f) :
                                          motive 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}).

                                          theorem Measurable.ennreal_sigmaFinite_induction {α : Type u_1} { : MeasurableSpace α} {μ : MeasureTheory.Measure α} [MeasureTheory.SigmaFinite μ] {motive : (αENNReal)Prop} (indicator : ∀ (c : ENNReal) ⦃s : Set α⦄, MeasurableSet sμ s < motive (s.indicator fun (x : α) => c)) (add : ∀ ⦃f g : αENNReal⦄, Disjoint (Function.support f) (Function.support g)Measurable fMeasurable gmotive fmotive gmotive (f + g)) (iSup : ∀ ⦃f : αENNReal⦄, (∀ (n : ), Measurable (f n))Monotone f(∀ (n : ), motive (f n))motive fun (x : α) => ⨆ (n : ), f n x) f : αENNReal (hf : Measurable f) :
                                          motive f

                                          To prove something for an arbitrary measurable function into ℝ≥0∞, it suffices to show that the property holds for (multiples of) characteristic functions with finite mass according to some sigma-finite measure 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}).