# mathlibdocumentation

measure_theory.integral_eq_improper

# Links between an integral and its "improper" version #

In its current state, mathlib only knows how to talk about definite ("proper") integrals, in the sense that it treats integrals over [x, +∞) the same as it treats integrals over [y, z]. For example, the integral over [1, +∞) is not defined to be the limit of the integral over [1, x] as x tends to +∞, which is known as an improper integral.

Indeed, the "proper" definition is stronger than the "improper" one. The usual counterexample is x ↦ sin(x)/x, which has an improper integral over [1, +∞) but no definite integral.

Although definite integrals have better properties, they are hardly usable when it comes to computing integrals on unbounded sets, which is much easier using limits. Thus, in this file, we prove various ways of studying the proper integral by studying the improper one.

## Definitions #

The main definition of this file is measure_theory.ae_cover. It is a rather technical definition whose sole purpose is generalizing and factoring proofs. Given an index type ι, a countably generated filter l over ι, and an ι-indexed family φ of subsets of a measurable space α equipped with a measure μ, one should think of a hypothesis hφ : ae_cover μ l φ as a sufficient condition for being able to interpret ∫ x, f x ∂μ (if it exists) as the limit of ∫ x in φ i, f x ∂μ as i tends to l.

When using this definition with a measure restricted to a set s, which happens fairly often, one should not try too hard to use a ae_cover of subsets of s, as it often makes proofs more complicated than necessary. See for example the proof of measure_theory.integrable_on_Iic_of_interval_integral_norm_tendsto where we use (λ x, Ioi x) as an ae_cover w.r.t. μ.restrict (Iic b), instead of using (λ x, Ioc x b).

## Main statements #

• measure_theory.ae_cover.lintegral_tendsto_of_countably_generated : if φ is a ae_cover μ l, where l is a countably generated filter, and if f is a measurable ennreal-valued function, then ∫⁻ x in φ n, f x ∂μ tends to ∫⁻ x, f x ∂μ as n tends to l
• measure_theory.ae_cover.integrable_of_integral_norm_tendsto : if φ is a ae_cover μ l, where l is a countably generated filter, if f is measurable and integrable on each φ n, and if ∫ x in φ n, ∥f x∥ ∂μ tends to some I : ℝ as n tends to l, then f is integrable
• measure_theory.ae_cover.integral_tendsto_of_countably_generated : if φ is a ae_cover μ l, where l is a countably generated filter, and if f is measurable and integrable (globally), then ∫ x in φ n, f x ∂μ tends to ∫ x, f x ∂μ as n tends to +∞.

We then specialize these lemmas to various use cases involving intervals, which are frequent in analysis.

structure measure_theory.ae_cover {α : Type u_1} {ι : Type u_2} (μ : measure_theory.measure α) (l : filter ι) (φ : ι → set α) :
Prop
• ae_eventually_mem : ∀ᵐ (x : α) ∂μ, ∀ᶠ (i : ι) in l, x φ i
• measurable : ∀ (i : ι), measurable_set (φ i)

A sequence φ of subsets of α is a ae_cover w.r.t. a measure μ and a filter l if almost every point (w.r.t. μ) of α eventually belongs to φ n (w.r.t. l), and if each φ n is measurable. This definition is a technical way to avoid duplicating a lot of proofs. It should be thought of as a sufficient condition for being able to interpret ∫ x, f x ∂μ (if it exists) as the limit of ∫ x in φ n, f x ∂μ as n tends to l.

See for example measure_theory.ae_cover.lintegral_tendsto_of_countably_generated, measure_theory.ae_cover.integrable_of_integral_norm_tendsto and measure_theory.ae_cover.integral_tendsto_of_countably_generated.

theorem measure_theory.ae_cover_Icc {α : Type u_1} {ι : Type u_2} {μ : measure_theory.measure α} {l : filter ι} [preorder α] {a b : ι → α} (ha : filter.at_bot) (hb : filter.at_top) :
(λ (i : ι), set.Icc (a i) (b i))
theorem measure_theory.ae_cover_Ici {α : Type u_1} {ι : Type u_2} {μ : measure_theory.measure α} {l : filter ι} [preorder α] {a : ι → α} (ha : filter.at_bot) :
(λ (i : ι), set.Ici (a i))
theorem measure_theory.ae_cover_Iic {α : Type u_1} {ι : Type u_2} {μ : measure_theory.measure α} {l : filter ι} [preorder α] {b : ι → α} (hb : filter.at_top) :
(λ (i : ι), set.Iic (b i))
theorem measure_theory.ae_cover_Ioo {α : Type u_1} {ι : Type u_2} {μ : measure_theory.measure α} {l : filter ι} [linear_order α] {a b : ι → α} (ha : filter.at_bot) (hb : filter.at_top) [no_bot_order α] [no_top_order α] :
(λ (i : ι), set.Ioo (a i) (b i))
theorem measure_theory.ae_cover_Ioc {α : Type u_1} {ι : Type u_2} {μ : measure_theory.measure α} {l : filter ι} [linear_order α] {a b : ι → α} (ha : filter.at_bot) (hb : filter.at_top) [no_bot_order α] :
(λ (i : ι), set.Ioc (a i) (b i))
theorem measure_theory.ae_cover_Ico {α : Type u_1} {ι : Type u_2} {μ : measure_theory.measure α} {l : filter ι} [linear_order α] {a b : ι → α} (ha : filter.at_bot) (hb : filter.at_top) [no_top_order α] :
(λ (i : ι), set.Ico (a i) (b i))
theorem measure_theory.ae_cover_Ioi {α : Type u_1} {ι : Type u_2} {μ : measure_theory.measure α} {l : filter ι} [linear_order α] {a : ι → α} (ha : filter.at_bot) [no_bot_order α] :
(λ (i : ι), set.Ioi (a i))
theorem measure_theory.ae_cover_Iio {α : Type u_1} {ι : Type u_2} {μ : measure_theory.measure α} {l : filter ι} [linear_order α] {b : ι → α} (hb : filter.at_top) [no_top_order α] :
(λ (i : ι), set.Iio (b i))
theorem measure_theory.ae_cover.restrict {α : Type u_1} {ι : Type u_2} {μ : measure_theory.measure α} {l : filter ι} {φ : ι → set α} (hφ : φ) {s : set α} :
l φ
theorem measure_theory.ae_cover_restrict_of_ae_imp {α : Type u_1} {ι : Type u_2} {μ : measure_theory.measure α} {l : filter ι} {s : set α} {φ : ι → set α} (hs : measurable_set s) (ae_eventually_mem : ∀ᵐ (x : α) ∂μ, x s(∀ᶠ (n : ι) in l, x φ n)) (measurable : ∀ (n : ι), measurable_set (φ n)) :
l φ
theorem measure_theory.ae_cover.inter_restrict {α : Type u_1} {ι : Type u_2} {μ : measure_theory.measure α} {l : filter ι} {φ : ι → set α} (hφ : φ) {s : set α} (hs : measurable_set s) :
l (λ (i : ι), φ i s)
theorem measure_theory.ae_cover.ae_tendsto_indicator {α : Type u_1} {ι : Type u_2} {μ : measure_theory.measure α} {l : filter ι} {β : Type u_3} [has_zero β] {f : α → β} {φ : ι → set α} (hφ : φ) :
∀ᵐ (x : α) ∂μ, filter.tendsto (λ (i : ι), (φ i).indicator f x) l (𝓝 (f x))
theorem measure_theory.ae_cover.comp_tendsto {α : Type u_1} {ι : Type u_2} {ι' : Type u_3} {μ : measure_theory.measure α} {l : filter ι} {l' : filter ι'} {φ : ι → set α} (hφ : φ) {u : ι' → ι} (hu : l' l) :
u)
theorem measure_theory.ae_cover.bUnion_Iic_ae_cover {α : Type u_1} {ι : Type u_2} [encodable ι] {μ : measure_theory.measure α} [preorder ι] {φ : ι → set α} (hφ : φ) :
(λ (n : ι), ⋃ (k : ι) (h : k set.Iic n), φ k)
theorem measure_theory.ae_cover.bInter_Ici_ae_cover {α : Type u_1} {ι : Type u_2} [encodable ι] {μ : measure_theory.measure α} [nonempty ι] {φ : ι → set α} (hφ : φ) :
(λ (n : ι), ⋂ (k : ι) (h : k set.Ici n), φ k)
theorem measure_theory.ae_cover.lintegral_tendsto_of_nat {α : Type u_1} {μ : measure_theory.measure α} {φ : set α} (hφ : φ) {f : α → ℝ≥0∞} (hfm : μ) :
filter.tendsto (λ (i : ), ∫⁻ (x : α) in φ i, f x μ) filter.at_top (𝓝 (∫⁻ (x : α), f x μ))
theorem measure_theory.ae_cover.lintegral_tendsto_of_countably_generated {α : Type u_1} {ι : Type u_2} {μ : measure_theory.measure α} {l : filter ι} {φ : ι → set α} (hφ : φ) (hcg : l.is_countably_generated) {f : α → ℝ≥0∞} (hfm : μ) :
filter.tendsto (λ (i : ι), ∫⁻ (x : α) in φ i, f x μ) l (𝓝 (∫⁻ (x : α), f x μ))
theorem measure_theory.ae_cover.lintegral_eq_of_tendsto {α : Type u_1} {ι : Type u_2} {μ : measure_theory.measure α} {l : filter ι} [l.ne_bot] {φ : ι → set α} (hφ : φ) (hcg : l.is_countably_generated) {f : α → ℝ≥0∞} (I : ℝ≥0∞) (hfm : μ) (htendsto : filter.tendsto (λ (i : ι), ∫⁻ (x : α) in φ i, f x μ) l (𝓝 I)) :
∫⁻ (x : α), f x μ = I
theorem measure_theory.ae_cover.supr_lintegral_eq_of_countably_generated {α : Type u_1} {ι : Type u_2} {μ : measure_theory.measure α} {l : filter ι} [nonempty ι] [l.ne_bot] {φ : ι → set α} (hφ : φ) (hcg : l.is_countably_generated) {f : α → ℝ≥0∞} (hfm : μ) :
(⨆ (i : ι), ∫⁻ (x : α) in φ i, f x μ) = ∫⁻ (x : α), f x μ
theorem measure_theory.ae_cover.integrable_of_lintegral_nnnorm_tendsto {α : Type u_1} {ι : Type u_2} {E : Type u_3} {μ : measure_theory.measure α} {l : filter ι} [normed_group E] [l.ne_bot] {φ : ι → set α} (hφ : φ) (hcg : l.is_countably_generated) {f : α → E} (I : ) (hfm : μ) (htendsto : filter.tendsto (λ (i : ι), ∫⁻ (x : α) in φ i, f x∥₊ μ) l (𝓝 (ennreal.of_real I))) :
theorem measure_theory.ae_cover.integrable_of_lintegral_nnnorm_tendsto' {α : Type u_1} {ι : Type u_2} {E : Type u_3} {μ : measure_theory.measure α} {l : filter ι} [normed_group E] [l.ne_bot] {φ : ι → set α} (hφ : φ) (hcg : l.is_countably_generated) {f : α → E} (I : ℝ≥0) (hfm : μ) (htendsto : filter.tendsto (λ (i : ι), ∫⁻ (x : α) in φ i, f x∥₊ μ) l (𝓝 (ennreal.of_real I))) :
theorem measure_theory.ae_cover.integrable_of_integral_norm_tendsto {α : Type u_1} {ι : Type u_2} {E : Type u_3} {μ : measure_theory.measure α} {l : filter ι} [normed_group E] [l.ne_bot] {φ : ι → set α} (hφ : φ) (hcg : l.is_countably_generated) {f : α → E} (I : ) (hfm : μ) (hfi : ∀ (i : ι), (φ i) μ) (htendsto : filter.tendsto (λ (i : ι), (x : α) in φ i, f x μ) l (𝓝 I)) :
theorem measure_theory.ae_cover.integrable_of_integral_tendsto_of_nonneg_ae {α : Type u_1} {ι : Type u_2} {μ : measure_theory.measure α} {l : filter ι} [l.ne_bot] {φ : ι → set α} (hφ : φ) (hcg : l.is_countably_generated) {f : α → } (I : ) (hfm : μ) (hfi : ∀ (i : ι), (φ i) μ) (hnng : ∀ᵐ (x : α) ∂μ, 0 f x) (htendsto : filter.tendsto (λ (i : ι), (x : α) in φ i, f x μ) l (𝓝 I)) :
theorem measure_theory.ae_cover.integral_tendsto_of_countably_generated {α : Type u_1} {ι : Type u_2} {E : Type u_3} {μ : measure_theory.measure α} {l : filter ι} [normed_group E] [ E] [borel_space E] {φ : ι → set α} (hφ : φ) (hcg : l.is_countably_generated) {f : α → E} (hfm : μ) (hfi : μ) :
filter.tendsto (λ (i : ι), (x : α) in φ i, f x μ) l (𝓝 ( (x : α), f x μ))
theorem measure_theory.ae_cover.integral_eq_of_tendsto {α : Type u_1} {ι : Type u_2} {E : Type u_3} {μ : measure_theory.measure α} {l : filter ι} [normed_group E] [ E] [borel_space E] [l.ne_bot] {φ : ι → set α} (hφ : φ) (hcg : l.is_countably_generated) {f : α → E} (I : E) (hfm : μ) (hfi : μ) (h : filter.tendsto (λ (n : ι), (x : α) in φ n, f x μ) l (𝓝 I)) :
(x : α), f x μ = I

Slight reformulation of measure_theory.ae_cover.integral_tendsto_of_countably_generated.

theorem measure_theory.ae_cover.integral_eq_of_tendsto_of_nonneg_ae {α : Type u_1} {ι : Type u_2} {μ : measure_theory.measure α} {l : filter ι} [l.ne_bot] {φ : ι → set α} (hφ : φ) (hcg : l.is_countably_generated) {f : α → } (I : ) (hnng : 0 ≤ᵐ[μ] f) (hfm : μ) (hfi : ∀ (n : ι), (φ n) μ) (htendsto : filter.tendsto (λ (n : ι), (x : α) in φ n, f x μ) l (𝓝 I)) :
(x : α), f x μ = I
theorem measure_theory.integrable_of_interval_integral_norm_tendsto {α : Type u_1} {ι : Type u_2} {E : Type u_3} [linear_order α] {μ : measure_theory.measure α} {l : filter ι} [l.ne_bot] (hcg : l.is_countably_generated) [normed_group E] [borel_space E] {a b : ι → α} {f : α → E} (hfm : μ) [no_bot_order α] [nonempty α] (I : ) (hfi : ∀ (i : ι), (set.Ioc (a i) (b i)) μ) (ha : filter.at_bot) (hb : filter.at_top) (h : filter.tendsto (λ (i : ι), (x : α) in a i..b i, f x μ) l (𝓝 I)) :
theorem measure_theory.integrable_on_Iic_of_interval_integral_norm_tendsto {α : Type u_1} {ι : Type u_2} {E : Type u_3} [linear_order α] {μ : measure_theory.measure α} {l : filter ι} [l.ne_bot] (hcg : l.is_countably_generated) [normed_group E] [borel_space E] {a : ι → α} {f : α → E} (hfm : μ) [no_bot_order α] (I : ) (b : α) (hfi : ∀ (i : ι), (set.Ioc (a i) b) μ) (ha : filter.at_bot) (h : filter.tendsto (λ (i : ι), (x : α) in a i..b, f x μ) l (𝓝 I)) :
theorem measure_theory.integrable_on_Ioi_of_interval_integral_norm_tendsto {α : Type u_1} {ι : Type u_2} {E : Type u_3} [linear_order α] {μ : measure_theory.measure α} {l : filter ι} [l.ne_bot] (hcg : l.is_countably_generated) [normed_group E] [borel_space E] {b : ι → α} {f : α → E} (hfm : μ) (I : ) (a : α) (hfi : ∀ (i : ι), (set.Ioc a (b i)) μ) (hb : filter.at_top) (h : filter.tendsto (λ (i : ι), (x : α) in a..b i, f x μ) l (𝓝 I)) :
theorem measure_theory.interval_integral_tendsto_integral {α : Type u_1} {ι : Type u_2} {E : Type u_3} [linear_order α] {μ : measure_theory.measure α} {l : filter ι} (hcg : l.is_countably_generated) [normed_group E] [ E] [borel_space E] {a b : ι → α} {f : α → E} (hfm : μ) [no_bot_order α] [nonempty α] (hfi : μ) (ha : filter.at_bot) (hb : filter.at_top) :
filter.tendsto (λ (i : ι), (x : α) in a i..b i, f x μ) l (𝓝 ( (x : α), f x μ))
theorem measure_theory.interval_integral_tendsto_integral_Iic {α : Type u_1} {ι : Type u_2} {E : Type u_3} [linear_order α] {μ : measure_theory.measure α} {l : filter ι} (hcg : l.is_countably_generated) [normed_group E] [ E] [borel_space E] {a : ι → α} {f : α → E} (hfm : μ) [no_bot_order α] (b : α) (hfi : μ) (ha : filter.at_bot) :
filter.tendsto (λ (i : ι), (x : α) in a i..b, f x μ) l (𝓝 ( (x : α) in , f x μ))
theorem measure_theory.interval_integral_tendsto_integral_Ioi {α : Type u_1} {ι : Type u_2} {E : Type u_3} [linear_order α] {μ : measure_theory.measure α} {l : filter ι} (hcg : l.is_countably_generated) [normed_group E] [ E] [borel_space E] {b : ι → α} {f : α → E} (hfm : μ) (a : α) (hfi : μ) (hb : filter.at_top) :
filter.tendsto (λ (i : ι), (x : α) in a..b i, f x μ) l (𝓝 ( (x : α) in , f x μ))