mathlib documentation

measure_theory.​integration

measure_theory.​integration

Lebesgue integral for ennreal-valued functions

We define simple functions and show that each Borel measurable function on ennreal can be approximated by a sequence of simple functions.

Notation

We introduce the following notation for the lower Lebesgue integral of a function f : α → ennreal.

structure measure_theory.​simple_func (α : Type u) [measurable_space α] :
Type vType (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.

theorem measure_theory.​simple_func.​coe_injective {α : Type u_1} {β : Type u_2} [measurable_space α] ⦃f g : measure_theory.simple_func α β⦄ :
f = gf = g

@[ext]
theorem measure_theory.​simple_func.​ext {α : Type u_1} {β : Type u_2} [measurable_space α] {f g : measure_theory.simple_func α β} :
(∀ (a : α), f a = g a)f = g

theorem measure_theory.​simple_func.​is_measurable_fiber {α : Type u_1} {β : Type u_2} [measurable_space α] (f : measure_theory.simple_func α β) (x : β) :

def measure_theory.​simple_func.​range {α : Type u_1} {β : Type u_2} [measurable_space α] :

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

Equations
@[simp]
theorem measure_theory.​simple_func.​mem_range {α : Type u_1} {β : Type u_2} [measurable_space α] {f : measure_theory.simple_func α β} {b : β} :

theorem measure_theory.​simple_func.​mem_range_self {α : Type u_1} {β : Type u_2} [measurable_space α] (f : measure_theory.simple_func α β) (x : α) :

@[simp]
theorem measure_theory.​simple_func.​coe_range {α : Type u_1} {β : Type u_2} [measurable_space α] (f : measure_theory.simple_func α β) :

theorem measure_theory.​simple_func.​mem_range_of_measure_ne_zero {α : Type u_1} {β : Type u_2} [measurable_space α] {f : measure_theory.simple_func α β} {x : β} {μ : measure_theory.measure α} :
μ (f ⁻¹' {x}) 0x f.range

theorem measure_theory.​simple_func.​forall_range_iff {α : Type u_1} {β : Type u_2} [measurable_space α] {f : measure_theory.simple_func α β} {p : β → Prop} :
(∀ (y : β), y f.rangep y) ∀ (x : α), p (f x)

theorem measure_theory.​simple_func.​exists_range_iff {α : Type u_1} {β : Type u_2} [measurable_space α] {f : measure_theory.simple_func α β} {p : β → Prop} :
(∃ (y : β) (H : y f.range), p y) ∃ (x : α), p (f x)

theorem measure_theory.​simple_func.​preimage_eq_empty_iff {α : Type u_1} {β : Type u_2} [measurable_space α] (f : measure_theory.simple_func α β) (b : β) :

def measure_theory.​simple_func.​const (α : Type u_1) {β : Type u_2} [measurable_space α] :

Constant function as a simple_func.

Equations
theorem measure_theory.​simple_func.​const_apply {α : Type u_1} {β : Type u_2} [measurable_space α] (a : α) (b : β) :

@[simp]
theorem measure_theory.​simple_func.​coe_const {α : Type u_1} {β : Type u_2} [measurable_space α] (b : β) :

@[simp]
theorem measure_theory.​simple_func.​range_const {β : Type u_2} (α : Type u_1) [measurable_space α] [nonempty α] (b : β) :

theorem measure_theory.​simple_func.​is_measurable_cut {α : Type u_1} {β : Type u_2} [measurable_space α] (r : α → β → Prop) (f : measure_theory.simple_func α β) :
(∀ (b : β), is_measurable {a : α | r a b})is_measurable {a : α | r a (f a)}

A simple function is measurable

If-then-else as a simple_func.

Equations
@[simp]
theorem measure_theory.​simple_func.​coe_piecewise {α : Type u_1} {β : Type u_2} [measurable_space α] {s : set α} (hs : is_measurable s) (f g : measure_theory.simple_func α β) :

theorem measure_theory.​simple_func.​piecewise_apply {α : Type u_1} {β : Type u_2} [measurable_space α] {s : set α} (hs : is_measurable s) (f g : measure_theory.simple_func α β) (a : α) :

def measure_theory.​simple_func.​bind {α : Type u_1} {β : Type u_2} {γ : Type u_3} [measurable_space α] :

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
@[simp]
theorem measure_theory.​simple_func.​bind_apply {α : Type u_1} {β : Type u_2} {γ : Type u_3} [measurable_space α] (f : measure_theory.simple_func α β) (g : β → measure_theory.simple_func α γ) (a : α) :
(f.bind g) a = (g (f a)) a

def measure_theory.​simple_func.​map {α : Type u_1} {β : Type u_2} {γ : Type u_3} [measurable_space α] :

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

Equations
theorem measure_theory.​simple_func.​map_apply {α : Type u_1} {β : Type u_2} {γ : Type u_3} [measurable_space α] (g : β → γ) (f : measure_theory.simple_func α β) (a : α) :

theorem measure_theory.​simple_func.​map_map {α : Type u_1} {β : Type u_2} {γ : Type u_3} {δ : Type u_4} [measurable_space α] (g : β → γ) (h : γ → δ) (f : measure_theory.simple_func α β) :

@[simp]
theorem measure_theory.​simple_func.​coe_map {α : Type u_1} {β : Type u_2} {γ : Type u_3} [measurable_space α] (g : β → γ) (f : measure_theory.simple_func α β) :

@[simp]
theorem measure_theory.​simple_func.​range_map {α : Type u_1} {β : Type u_2} {γ : Type u_3} [measurable_space α] [decidable_eq γ] (g : β → γ) (f : measure_theory.simple_func α β) :

@[simp]
theorem measure_theory.​simple_func.​map_const {α : Type u_1} {β : Type u_2} {γ : Type u_3} [measurable_space α] (g : β → γ) (b : β) :

theorem measure_theory.​simple_func.​map_preimage {α : Type u_1} {β : Type u_2} {γ : Type u_3} [measurable_space α] (f : measure_theory.simple_func α β) (g : β → γ) (s : set γ) :

theorem measure_theory.​simple_func.​map_preimage_singleton {α : Type u_1} {β : Type u_2} {γ : Type u_3} [measurable_space α] (f : measure_theory.simple_func α β) (g : β → γ) (c : γ) :

def measure_theory.​simple_func.​comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [measurable_space α] [measurable_space β] (f : measure_theory.simple_func β γ) (g : α → β) :

Composition of a simple_fun and a measurable function is a simple_func.

Equations
@[simp]
theorem measure_theory.​simple_func.​coe_comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [measurable_space α] [measurable_space β] (f : measure_theory.simple_func β γ) {g : α → β} (hgm : measurable g) :
(f.comp g hgm) = f g

theorem measure_theory.​simple_func.​range_comp_subset_range {α : Type u_1} {β : Type u_2} {γ : Type u_3} [measurable_space α] [measurable_space β] (f : measure_theory.simple_func β γ) {g : α → β} (hgm : measurable g) :
(f.comp g hgm).range f.range

def measure_theory.​simple_func.​seq {α : Type u_1} {β : Type u_2} {γ : Type u_3} [measurable_space α] :

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
@[simp]
theorem measure_theory.​simple_func.​seq_apply {α : Type u_1} {β : Type u_2} {γ : Type u_3} [measurable_space α] (f : measure_theory.simple_func α (β → γ)) (g : measure_theory.simple_func α β) (a : α) :
(f.seq g) a = f a (g a)

def measure_theory.​simple_func.​pair {α : Type u_1} {β : Type u_2} {γ : Type u_3} [measurable_space α] :

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

Equations
@[simp]
theorem measure_theory.​simple_func.​pair_apply {α : Type u_1} {β : Type u_2} {γ : Type u_3} [measurable_space α] (f : measure_theory.simple_func α β) (g : measure_theory.simple_func α γ) (a : α) :
(f.pair g) a = (f a, g a)

theorem measure_theory.​simple_func.​pair_preimage {α : Type u_1} {β : Type u_2} {γ : Type u_3} [measurable_space α] (f : measure_theory.simple_func α β) (g : measure_theory.simple_func α γ) (s : set β) (t : set γ) :

theorem measure_theory.​simple_func.​pair_preimage_singleton {α : Type u_1} {β : Type u_2} {γ : Type u_3} [measurable_space α] (f : measure_theory.simple_func α β) (g : measure_theory.simple_func α γ) (b : β) (c : γ) :
(f.pair g) ⁻¹' {(b, c)} = f ⁻¹' {b} g ⁻¹' {c}

@[instance]
def measure_theory.​simple_func.​has_le {α : Type u_1} {β : Type u_2} [measurable_space α] [has_le β] :

Equations
@[simp]
theorem measure_theory.​simple_func.​coe_zero {α : Type u_1} {β : Type u_2} [measurable_space α] [has_zero β] :
0 = 0

@[simp]

@[simp]
theorem measure_theory.​simple_func.​coe_add {α : Type u_1} {β : Type u_2} [measurable_space α] [has_add β] (f g : measure_theory.simple_func α β) :
(f + g) = f + g

@[simp]
theorem measure_theory.​simple_func.​coe_mul {α : Type u_1} {β : Type u_2} [measurable_space α] [has_mul β] (f g : measure_theory.simple_func α β) :
(f * g) = f * g

@[simp]
theorem measure_theory.​simple_func.​coe_le {α : Type u_1} {β : Type u_2} [measurable_space α] [preorder β] {f g : measure_theory.simple_func α β} :
f g f g

@[simp]
theorem measure_theory.​simple_func.​range_zero {α : Type u_1} {β : Type u_2} [measurable_space α] [nonempty α] [has_zero β] :
0.range = {0}

theorem measure_theory.​simple_func.​eq_zero_of_mem_range_zero {α : Type u_1} {β : Type u_2} [measurable_space α] [has_zero β] {y : β} :
y 0.rangey = 0

theorem measure_theory.​simple_func.​sup_apply {α : Type u_1} {β : Type u_2} [measurable_space α] [has_sup β] (f g : measure_theory.simple_func α β) (a : α) :
(f g) a = f a g a

theorem measure_theory.​simple_func.​mul_apply {α : Type u_1} {β : Type u_2} [measurable_space α] [has_mul β] (f g : measure_theory.simple_func α β) (a : α) :
(f * g) a = f a * g a

theorem measure_theory.​simple_func.​add_apply {α : Type u_1} {β : Type u_2} [measurable_space α] [has_add β] (f g : measure_theory.simple_func α β) (a : α) :
(f + g) a = f a + g a

theorem measure_theory.​simple_func.​add_eq_map₂ {α : Type u_1} {β : Type u_2} [measurable_space α] [has_add β] (f g : measure_theory.simple_func α β) :
f + g = measure_theory.simple_func.map (λ (p : β × β), p.fst + p.snd) (f.pair g)

theorem measure_theory.​simple_func.​mul_eq_map₂ {α : Type u_1} {β : Type u_2} [measurable_space α] [has_mul β] (f g : measure_theory.simple_func α β) :
f * g = measure_theory.simple_func.map (λ (p : β × β), p.fst * p.snd) (f.pair g)

theorem measure_theory.​simple_func.​sup_eq_map₂ {α : Type u_1} {β : Type u_2} [measurable_space α] [has_sup β] (f g : measure_theory.simple_func α β) :
f g = measure_theory.simple_func.map (λ (p : β × β), p.fst p.snd) (f.pair g)

theorem measure_theory.​simple_func.​const_mul_eq_map {α : Type u_1} {β : Type u_2} [measurable_space α] [has_mul β] (f : measure_theory.simple_func α β) (b : β) :

@[instance]

Equations
@[instance]

Equations
@[simp]
theorem measure_theory.​simple_func.​coe_neg {α : Type u_1} {β : Type u_2} [measurable_space α] [has_neg β] (f : measure_theory.simple_func α β) :

@[instance]

Equations
@[simp]
theorem measure_theory.​simple_func.​coe_sub {α : Type u_1} {β : Type u_2} [measurable_space α] [add_group β] (f g : measure_theory.simple_func α β) :
(f - g) = f - g

@[instance]

Equations
@[simp]
theorem measure_theory.​simple_func.​coe_smul {α : Type u_1} {β : Type u_2} [measurable_space α] {K : Type u_5} [has_scalar K β] (c : K) (f : measure_theory.simple_func α β) :
(c f) = c f

theorem measure_theory.​simple_func.​smul_apply {α : Type u_1} {β : Type u_2} [measurable_space α] {K : Type u_5} [has_scalar K β] (k : K) (f : measure_theory.simple_func α β) (a : α) :
(k f) a = k f a

@[instance]
def measure_theory.​simple_func.​semimodule {α : Type u_1} {β : Type u_2} [measurable_space α] {K : Type u_5} [semiring K] [add_comm_monoid β] [semimodule K β] :

Equations
theorem measure_theory.​simple_func.​smul_eq_map {α : Type u_1} {β : Type u_2} [measurable_space α] {K : Type u_5} [has_scalar K β] (k : K) (f : measure_theory.simple_func α β) :

theorem measure_theory.​simple_func.​finset_sup_apply {α : Type u_1} {β : Type u_2} {γ : Type u_3} [measurable_space α] [semilattice_sup_bot β] {f : γ → measure_theory.simple_func α β} (s : finset γ) (a : α) :
(s.sup f) a = s.sup (λ (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
theorem measure_theory.​simple_func.​restrict_of_not_measurable {α : Type u_1} {β : Type u_2} [measurable_space α] [has_zero β] {f : measure_theory.simple_func α β} {s : set α} :

@[simp]
theorem measure_theory.​simple_func.​coe_restrict {α : Type u_1} {β : Type u_2} [measurable_space α] [has_zero β] (f : measure_theory.simple_func α β) {s : set α} :

@[simp]
theorem measure_theory.​simple_func.​restrict_univ {α : Type u_1} {β : Type u_2} [measurable_space α] [has_zero β] (f : measure_theory.simple_func α β) :

@[simp]
theorem measure_theory.​simple_func.​restrict_empty {α : Type u_1} {β : Type u_2} [measurable_space α] [has_zero β] (f : measure_theory.simple_func α β) :

theorem measure_theory.​simple_func.​map_restrict_of_zero {α : Type u_1} {β : Type u_2} {γ : Type u_3} [measurable_space α] [has_zero β] [has_zero γ] {g : β → γ} (hg : g 0 = 0) (f : measure_theory.simple_func α β) (s : set α) :

theorem measure_theory.​simple_func.​restrict_apply {α : Type u_1} {β : Type u_2} [measurable_space α] [has_zero β] (f : measure_theory.simple_func α β) {s : set α} (hs : is_measurable s) (a : α) :
(f.restrict s) a = ite (a s) (f a) 0

theorem measure_theory.​simple_func.​restrict_preimage {α : Type u_1} {β : Type u_2} [measurable_space α] [has_zero β] (f : measure_theory.simple_func α β) {s : set α} (hs : is_measurable s) {t : set β} :
0 t(f.restrict s) ⁻¹' t = s f ⁻¹' t

theorem measure_theory.​simple_func.​restrict_preimage_singleton {α : Type u_1} {β : Type u_2} [measurable_space α] [has_zero β] (f : measure_theory.simple_func α β) {s : set α} (hs : is_measurable s) {r : β} :
r 0(f.restrict s) ⁻¹' {r} = s f ⁻¹' {r}

theorem measure_theory.​simple_func.​mem_restrict_range {α : Type u_1} {β : Type u_2} [measurable_space α] [has_zero β] {r : β} {s : set α} {f : measure_theory.simple_func α β} :
is_measurable s(r (f.restrict s).range r = 0 s set.univ r f '' s)

theorem measure_theory.​simple_func.​mem_image_of_mem_range_restrict {α : Type u_1} {β : Type u_2} [measurable_space α] [has_zero β] {r : β} {s : set α} {f : measure_theory.simple_func α β} :
r (f.restrict s).ranger 0r f '' s

theorem measure_theory.​simple_func.​restrict_mono {α : Type u_1} {β : Type u_2} [measurable_space α] [has_zero β] [preorder β] (s : set α) {f g : measure_theory.simple_func α β} :
f gf.restrict s g.restrict s

def measure_theory.​simple_func.​approx {α : Type u_1} {β : Type u_2} [measurable_space α] [semilattice_sup_bot β] [has_zero β] :
( → β)(α → β)measure_theory.simple_func α β

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

Equations
theorem measure_theory.​simple_func.​approx_apply {α : Type u_1} {β : Type u_2} [measurable_space α] [semilattice_sup_bot β] [has_zero β] [topological_space β] [order_closed_topology β] [measurable_space β] [opens_measurable_space β] {i : → β} {f : α → β} {n : } (a : α) :
measurable f(measure_theory.simple_func.approx i f n) a = (finset.range n).sup (λ (k : ), ite (i k f a) (i k) 0)

theorem measure_theory.​simple_func.​monotone_approx {α : Type u_1} {β : Type u_2} [measurable_space α] [semilattice_sup_bot β] [has_zero β] (i : → β) (f : α → β) :

theorem measure_theory.​simple_func.​approx_comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [measurable_space α] [semilattice_sup_bot β] [has_zero β] [topological_space β] [order_closed_topology β] [measurable_space β] [opens_measurable_space β] [measurable_space γ] {i : → β} {f : γ → β} {g : α → γ} {n : } (a : α) :

theorem measure_theory.​simple_func.​supr_approx_apply {α : Type u_1} {β : Type u_2} [measurable_space α] [topological_space β] [complete_lattice β] [order_closed_topology β] [has_zero β] [measurable_space β] [opens_measurable_space β] (i : → β) (f : α → β) (a : α) :
measurable f0 = ((⨆ (n : ), (measure_theory.simple_func.approx i f n) a) = ⨆ (k : ) (h : i k f a), i k)

A sequence of ennreals such that its range is the set of non-negative rational numbers.

Equations
theorem measure_theory.​simple_func.​supr_eapprox_apply {α : Type u_1} [measurable_space α] (f : α → ennreal) (hf : measurable f) (a : α) :

theorem measure_theory.​simple_func.​eapprox_comp {α : Type u_1} {γ : Type u_3} [measurable_space α] [measurable_space γ] {f : γ → ennreal} {g : α → γ} {n : } :

Integral of a simple function whose codomain is ennreal.

Equations
theorem measure_theory.​simple_func.​lintegral_eq_of_subset {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} (f : measure_theory.simple_func α ennreal) {s : finset ennreal} :
(∀ (x : α), f x 0μ (f ⁻¹' {f x}) 0f x s)f.lintegral μ = s.sum (λ (x : ennreal), x * μ (f ⁻¹' {x}))

theorem measure_theory.​simple_func.​map_lintegral {α : Type u_1} {β : Type u_2} [measurable_space α] {μ : measure_theory.measure α} (g : β → ennreal) (f : measure_theory.simple_func α β) :
(measure_theory.simple_func.map g f).lintegral μ = f.range.sum (λ (x : β), g x * μ (f ⁻¹' {x}))

Calculate the integral of (g ∘ f), where g : β → ennreal and f : α →ₛ β.

theorem measure_theory.​simple_func.​lintegral_sum {α : Type u_1} [measurable_space α] {ι : Type u_2} (f : measure_theory.simple_func α ennreal) (μ : ι → measure_theory.measure α) :
f.lintegral (measure_theory.measure.sum μ) = ∑' (i : ι), f.lintegral (μ i)

theorem measure_theory.​simple_func.​lintegral_mono {α : Type u_1} [measurable_space α] {f g : measure_theory.simple_func α ennreal} (hfg : f g) {μ ν : measure_theory.measure α} :
μ νf.lintegral μ g.lintegral ν

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

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

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

theorem measure_theory.​simple_func.​lintegral_map {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} {β : Type u_2} [measurable_space β] {μ' : measure_theory.measure β} (f : measure_theory.simple_func α ennreal) (g : measure_theory.simple_func β ennreal) (m : α → β) :
(∀ (a : α), f a = g (m a))(∀ (s : set β), is_measurable sμ' s = μ (m ⁻¹' s))f.lintegral μ = g.lintegral μ'

theorem measure_theory.​simple_func.​support_eq {α : Type u_1} {β : Type u_2} [measurable_space α] [has_zero β] (f : measure_theory.simple_func α β) :
function.support f = ⋃ (y : β) (H : y finset.filter (λ (y : β), y 0) f.range), f ⁻¹' {y}

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

Equations
theorem measure_theory.​simple_func.​fin_meas_supp_iff {α : Type u_1} {β : Type u_2} [measurable_space α] [has_zero β] {f : measure_theory.simple_func α β} {μ : measure_theory.measure α} :
f.fin_meas_supp μ ∀ (y : β), y 0μ (f ⁻¹' {y}) <

theorem measure_theory.​simple_func.​fin_meas_supp.​map {α : Type u_1} {β : Type u_2} {γ : Type u_3} [measurable_space α] [has_zero β] [has_zero γ] {μ : measure_theory.measure α} {f : measure_theory.simple_func α β} {g : β → γ} :

theorem measure_theory.​simple_func.​fin_meas_supp.​of_map {α : Type u_1} {β : Type u_2} {γ : Type u_3} [measurable_space α] [has_zero β] [has_zero γ] {μ : measure_theory.measure α} {f : measure_theory.simple_func α β} {g : β → γ} :
(measure_theory.simple_func.map g f).fin_meas_supp μ(∀ (b : β), g b = 0b = 0)f.fin_meas_supp μ

theorem measure_theory.​simple_func.​fin_meas_supp.​map_iff {α : Type u_1} {β : Type u_2} {γ : Type u_3} [measurable_space α] [has_zero β] [has_zero γ] {μ : measure_theory.measure α} {f : measure_theory.simple_func α β} {g : β → γ} :
(∀ {b : β}, g b = 0 b = 0)((measure_theory.simple_func.map g f).fin_meas_supp μ f.fin_meas_supp μ)

theorem measure_theory.​simple_func.​fin_meas_supp.​pair {α : Type u_1} {β : Type u_2} {γ : Type u_3} [measurable_space α] [has_zero β] [has_zero γ] {μ : measure_theory.measure α} {f : measure_theory.simple_func α β} {g : measure_theory.simple_func α γ} :
f.fin_meas_supp μg.fin_meas_supp μ(f.pair g).fin_meas_supp μ

theorem measure_theory.​simple_func.​fin_meas_supp.​map₂ {α : Type u_1} {β : Type u_2} {γ : Type u_3} {δ : Type u_4} [measurable_space α] [has_zero β] [has_zero γ] [has_zero δ] {μ : measure_theory.measure α} {f : measure_theory.simple_func α β} (hf : f.fin_meas_supp μ) {g : measure_theory.simple_func α γ} (hg : g.fin_meas_supp μ) {op : β → γ → δ} :

def measure_theory.​lintegral {α : Type u_1} [measurable_space α] :

The lower Lebesgue integral of a function f with respect to a measure μ.

Equations
theorem measure_theory.​lintegral_mono' {α : Type u_1} [measurable_space α] ⦃μ ν : measure_theory.measure α⦄ (hμν : μ ν) ⦃f g : α → ennreal :
f g∫⁻ (a : α), f a μ ∫⁻ (a : α), g a ν

theorem measure_theory.​lintegral_mono {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} ⦃f g : α → ennreal :
f g∫⁻ (a : α), f a μ ∫⁻ (a : α), g a μ

@[simp]
theorem measure_theory.​lintegral_const {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} (c : ennreal) :
∫⁻ (a : α), c μ = c * μ set.univ

theorem measure_theory.​lintegral_eq_nnreal {α : Type u_1} [measurable_space α] (f : α → ennreal) (μ : measure_theory.measure α) :
∫⁻ (a : α), f a μ = ⨆ (φ : measure_theory.simple_func α nnreal) (hf : ∀ (x : α), (φ x) f x), (measure_theory.simple_func.map coe φ).lintegral μ

∫⁻ a in s, f a ∂μ is defined as the supremum of integrals of simple functions φ : α →ₛ ennreal such that φ ≤ f. This lemma says that it suffices to take functions φ : α →ₛ ℝ≥0.

theorem measure_theory.​supr_lintegral_le {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} {ι : Sort u_2} (f : ι → α → ennreal) :
(⨆ (i : ι), ∫⁻ (a : α), f i a μ) ∫⁻ (a : α), (⨆ (i : ι), f i a) μ

theorem measure_theory.​supr2_lintegral_le {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} {ι : Sort u_2} {ι' : ι → Sort u_3} (f : Π (i : ι), ι' iα → ennreal) :
(⨆ (i : ι) (h : ι' i), ∫⁻ (a : α), f i h a μ) ∫⁻ (a : α), (⨆ (i : ι) (h : ι' i), f i h a) μ

theorem measure_theory.​le_infi_lintegral {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} {ι : Sort u_2} (f : ι → α → ennreal) :
∫⁻ (a : α), (⨅ (i : ι), f i a) μ ⨅ (i : ι), ∫⁻ (a : α), f i a μ

theorem measure_theory.​le_infi2_lintegral {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} {ι : Sort u_2} {ι' : ι → Sort u_3} (f : Π (i : ι), ι' iα → ennreal) :
∫⁻ (a : α), (⨅ (i : ι) (h : ι' i), f i h a) μ ⨅ (i : ι) (h : ι' i), ∫⁻ (a : α), f i h a μ

theorem measure_theory.​lintegral_supr {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} {f : α → ennreal} :
(∀ (n : ), measurable (f n))monotone f(∫⁻ (a : α), (⨆ (n : ), f n a) μ = ⨆ (n : ), ∫⁻ (a : α), f n a μ)

Monotone convergence theorem -- sometimes called Beppo-Levi convergence.

See lintegral_supr_directed for a more general form.

theorem measure_theory.​lintegral_add {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} {f g : α → ennreal} :
measurable fmeasurable g∫⁻ (a : α), f a + g a μ = ∫⁻ (a : α), f a μ + ∫⁻ (a : α), g a μ

theorem measure_theory.​lintegral_zero {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} :
∫⁻ (a : α), 0 μ = 0

theorem measure_theory.​lintegral_smul_measure {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} (c : ennreal) (f : α → ennreal) :
∫⁻ (a : α), f a c μ = c * ∫⁻ (a : α), f a μ

theorem measure_theory.​lintegral_sum_measure {α : Type u_1} [measurable_space α] {ι : Type u_2} (f : α → ennreal) (μ : ι → measure_theory.measure α) :
∫⁻ (a : α), f a measure_theory.measure.sum μ = ∑' (i : ι), ∫⁻ (a : α), f a μ i

theorem measure_theory.​lintegral_add_measure {α : Type u_1} [measurable_space α] (f : α → ennreal) (μ ν : measure_theory.measure α) :
∫⁻ (a : α), f a + ν) = ∫⁻ (a : α), f a μ + ∫⁻ (a : α), f a ν

@[simp]
theorem measure_theory.​lintegral_zero_measure {α : Type u_1} [measurable_space α] (f : α → ennreal) :
∫⁻ (a : α), f a 0 = 0

theorem measure_theory.​lintegral_finset_sum {α : Type u_1} {β : Type u_2} [measurable_space α] {μ : measure_theory.measure α} (s : finset β) {f : β → α → ennreal} :
(∀ (b : β), measurable (f b))∫⁻ (a : α), s.sum (λ (b : β), f b a) μ = s.sum (λ (b : β), ∫⁻ (a : α), f b a μ)

theorem measure_theory.​lintegral_const_mul {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} (r : ennreal) {f : α → ennreal} :
measurable f∫⁻ (a : α), r * f a μ = r * ∫⁻ (a : α), f a μ

theorem measure_theory.​lintegral_const_mul_le {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} (r : ennreal) (f : α → ennreal) :
r * ∫⁻ (a : α), f a μ ∫⁻ (a : α), r * f a μ

theorem measure_theory.​lintegral_const_mul' {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} (r : ennreal) (f : α → ennreal) :
r ∫⁻ (a : α), r * f a μ = r * ∫⁻ (a : α), f a μ

theorem measure_theory.​lintegral_mono_ae {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} {f g : α → ennreal} :
(∀ᵐ (a : α) ∂μ, f a g a)∫⁻ (a : α), f a μ ∫⁻ (a : α), g a μ

theorem measure_theory.​lintegral_congr_ae {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} {f g : α → ennreal} :
f =ᵐ[μ] g∫⁻ (a : α), f a μ = ∫⁻ (a : α), g a μ

theorem measure_theory.​lintegral_congr {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} {f g : α → ennreal} :
(∀ (a : α), f a = g a)∫⁻ (a : α), f a μ = ∫⁻ (a : α), g a μ

theorem measure_theory.​lintegral_rw₁ {α : Type u_1} {β : Type u_2} [measurable_space α] {μ : measure_theory.measure α} {f f' : α → β} (h : f =ᵐ[μ] f') (g : β → ennreal) :
∫⁻ (a : α), g (f a) μ = ∫⁻ (a : α), g (f' a) μ

theorem measure_theory.​lintegral_rw₂ {α : Type u_1} {β : Type u_2} {γ : Type u_3} [measurable_space α] {μ : measure_theory.measure α} {f₁ f₁' : α → β} {f₂ f₂' : α → γ} (h₁ : f₁ =ᵐ[μ] f₁') (h₂ : f₂ =ᵐ[μ] f₂') (g : β → γ → ennreal) :
∫⁻ (a : α), g (f₁ a) (f₂ a) μ = ∫⁻ (a : α), g (f₁' a) (f₂' a) μ

@[simp]
theorem measure_theory.​lintegral_indicator {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} (f : α → ennreal) {s : set α} :
is_measurable s∫⁻ (a : α), s.indicator f a μ = ∫⁻ (a : α) in s, f a μ

theorem measure_theory.​mul_meas_ge_le_lintegral {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} {f : α → ennreal} (hf : measurable f) (ε : ennreal) :
ε * μ {x : α | ε f x} ∫⁻ (a : α), f a μ

Chebyshev's inequality

theorem measure_theory.​meas_ge_le_lintegral_div {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} {f : α → ennreal} (hf : measurable f) {ε : ennreal} :
ε 0ε μ {x : α | ε f x} ∫⁻ (a : α), f a μ / ε

theorem measure_theory.​lintegral_eq_zero_iff {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} {f : α → ennreal} :
measurable f(∫⁻ (a : α), f a μ = 0 f =ᵐ[μ] 0)

theorem measure_theory.​lintegral_supr_ae {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} {f : α → ennreal} :
(∀ (n : ), measurable (f n))(∀ (n : ), ∀ᵐ (a : α) ∂μ, f n a f n.succ a)(∫⁻ (a : α), (⨆ (n : ), f n a) μ = ⨆ (n : ), ∫⁻ (a : α), f n a μ)

Weaker version of the monotone convergence theorem

theorem measure_theory.​lintegral_sub {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} {f g : α → ennreal} :
measurable fmeasurable g∫⁻ (a : α), g a μ < g ≤ᵐ[μ] f∫⁻ (a : α), f a - g a μ = ∫⁻ (a : α), f a μ - ∫⁻ (a : α), g a μ

theorem measure_theory.​lintegral_infi_ae {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} {f : α → ennreal} :
(∀ (n : ), measurable (f n))(∀ (n : ), f n.succ ≤ᵐ[μ] f n)∫⁻ (a : α), f 0 a μ < (∫⁻ (a : α), (⨅ (n : ), f n a) μ = ⨅ (n : ), ∫⁻ (a : α), f n a μ)

Monotone convergence theorem for nonincreasing sequences of functions

theorem measure_theory.​lintegral_infi {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} {f : α → ennreal} :
(∀ (n : ), measurable (f n))(∀ ⦃m n : ⦄, m nf n f m)∫⁻ (a : α), f 0 a μ < (∫⁻ (a : α), (⨅ (n : ), f n a) μ = ⨅ (n : ), ∫⁻ (a : α), f n a μ)

Monotone convergence theorem for nonincreasing sequences of functions

theorem measure_theory.​lintegral_liminf_le {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} {f : α → ennreal} :
(∀ (n : ), measurable (f n))∫⁻ (a : α), filter.at_top.liminf (λ (n : ), f n a) μ filter.at_top.liminf (λ (n : ), ∫⁻ (a : α), f n a μ)

Known as Fatou's lemma

theorem measure_theory.​limsup_lintegral_le {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} {f : α → ennreal} {g : α → ennreal} :
(∀ (n : ), measurable (f n))(∀ (n : ), f n ≤ᵐ[μ] g)∫⁻ (a : α), g a μ < filter.at_top.limsup (λ (n : ), ∫⁻ (a : α), f n a μ) ∫⁻ (a : α), filter.at_top.limsup (λ (n : ), f n a) μ

theorem measure_theory.​tendsto_lintegral_of_dominated_convergence {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} {F : α → ennreal} {f : α → ennreal} (bound : α → ennreal) :
(∀ (n : ), measurable (F n))(∀ (n : ), F n ≤ᵐ[μ] bound)∫⁻ (a : α), bound a μ < (∀ᵐ (a : α) ∂μ, filter.tendsto (λ (n : ), F n a) filter.at_top (nhds (f a)))filter.tendsto (λ (n : ), ∫⁻ (a : α), F n a μ) filter.at_top (nhds (∫⁻ (a : α), f a μ))

Dominated convergence theorem for nonnegative functions

theorem measure_theory.​tendsto_lintegral_filter_of_dominated_convergence {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} {ι : Type u_2} {l : filter ι} {F : ι → α → ennreal} {f : α → ennreal} (bound : α → ennreal) :
l.is_countably_generated(∀ᶠ (n : ι) in l, measurable (F n))(∀ᶠ (n : ι) in l, ∀ᵐ (a : α) ∂μ, F n a bound a)∫⁻ (a : α), bound a μ < (∀ᵐ (a : α) ∂μ, filter.tendsto (λ (n : ι), F n a) l (nhds (f a)))filter.tendsto (λ (n : ι), ∫⁻ (a : α), F n a μ) l (nhds (∫⁻ (a : α), f a μ))

Dominated convergence theorem for filters with a countable basis

theorem measure_theory.​lintegral_supr_directed {α : Type u_1} {β : Type u_2} [measurable_space α] {μ : measure_theory.measure α} [encodable β] {f : β → α → ennreal} :
(∀ (b : β), measurable (f b))directed has_le.le f(∫⁻ (a : α), (⨆ (b : β), f b a) μ = ⨆ (b : β), ∫⁻ (a : α), f b a μ)

Monotone convergence for a suprema over a directed family and indexed by an encodable type

theorem measure_theory.​lintegral_tsum {α : Type u_1} {β : Type u_2} [measurable_space α] {μ : measure_theory.measure α} [encodable β] {f : β → α → ennreal} :
(∀ (i : β), measurable (f i))(∫⁻ (a : α), (∑' (i : β), f i a) μ = ∑' (i : β), ∫⁻ (a : α), f i a μ)

theorem measure_theory.​lintegral_Union {α : Type u_1} {β : Type u_2} [measurable_space α] {μ : measure_theory.measure α} [encodable β] {s : β → set α} (hm : ∀ (i : β), is_measurable (s i)) (hd : pairwise (disjoint on s)) (f : α → ennreal) :
∫⁻ (a : α) in ⋃ (i : β), s i, f a μ = ∑' (i : β), ∫⁻ (a : α) in s i, f a μ

theorem measure_theory.​lintegral_Union_le {α : Type u_1} {β : Type u_2} [measurable_space α] {μ : measure_theory.measure α} [encodable β] (s : β → set α) (f : α → ennreal) :
∫⁻ (a : α) in ⋃ (i : β), s i, f a μ ∑' (i : β), ∫⁻ (a : α) in s i, f a μ

theorem measure_theory.​lintegral_map {α : Type u_1} {β : Type u_2} [measurable_space α] {μ : measure_theory.measure α} [measurable_space β] {f : β → ennreal} {g : α → β} :
measurable fmeasurable g∫⁻ (a : β), f a (measure_theory.measure.map g) μ = ∫⁻ (a : α), f (g a) μ

theorem measure_theory.​lintegral_dirac {α : Type u_1} [measurable_space α] (a : α) {f : α → ennreal} :

Given a measure μ : measure α and a function f : α → ennreal, μ.with_density f is the measure such that for a measurable set s we have μ.with_density f s = ∫⁻ a in s, f a ∂μ.

Equations
theorem measure_theory.​with_density_apply {α : Type u_1} [measurable_space α] {μ : measure_theory.measure α} (f : α → ennreal) {s : set α} :
is_measurable s(μ.with_density f) s = ∫⁻ (a : α) in s, f a μ