Almost everywhere equal functions
Two measurable functions are treated as identical if they are almost everywhere equal. We form the
set of equivalence classes under the relation of being almost everywhere equal, which is sometimes
known as the L⁰
space.
See l1_space.lean
for L¹
space.
Notation
α →ₘ[μ] β
is the type ofL⁰
space, whereα
andβ
are measurable spaces andμ
is a measure onα
.f : α →ₘ β
is a "function" inL⁰
. In comments,[f]
is also used to denote anL⁰
function.ₘ
can be typed as\_m
. Sometimes it is shown as a box if font is missing.
Main statements
The linear structure of
L⁰
: Addition and scalar multiplication are defined onL⁰
in the natural way, i.e.,[f] + [g] := [f + g]
,c • [f] := [c • f]
. So defined,α →ₘ β
inherits the linear structure ofβ
. For example, ifβ
is a module, thenα →ₘ β
is a module over the same ring.See
mk_add_mk
,neg_mk
,mk_sub_mk
,smul_mk
,add_to_fun
,neg_to_fun
,sub_to_fun
,smul_to_fun
The order structure of
L⁰
:≤
can be defined in a similar way:[f] ≤ [g]
iff a ≤ g a
for almost alla
in domain. Andα →ₘ β
inherits the preorder and partial order ofβ
.TODO: Define
sup
andinf
onL⁰
so that it forms a lattice. It seems thatβ
must be a linear order, since otherwisef ⊔ g
may not be a measurable function.Emetric on
L⁰
: Ifβ
is anemetric_space
, thenL⁰
can be made into anemetric_space
, whereedist [f] [g]
is defined to be∫⁻ a, edist (f a) (g a)
.The integral used here is
lintegral : (α → ennreal) → ennreal
, which is defined in the fileintegration.lean
.See
edist_mk_mk
andedist_to_fun
.
Implementation notes
f.to_fun
: To find a representative off : α →ₘ β
, usef.to_fun
. For each operationop
inL⁰
, there is a lemma calledop_to_fun
, characterizing, say,(f op g).to_fun
.ae_eq_fun.mk
: To constructs anL⁰
functionα →ₘ β
from a measurable functionf : α → β
, useae_eq_fun.mk
comp
: Usecomp g f
to get[g ∘ f]
fromg : β → γ
and[f] : α →ₘ γ
comp₂
: Usecomp₂ g f₁ f₂ to get
[λa, g (f₁ a) (f₂ a)]. For example,
[f + g]is
comp₂ (+)`
Tags
function space, almost everywhere equal, L⁰
, ae_eq_fun
The equivalence relation of being almost everywhere equal
Equations
- measure_theory.measure.ae_eq_setoid β μ = {r := λ (f g : {f // measurable f}), ↑f =ᵐ[μ] ↑g, iseqv := _}
The space of equivalence classes of measurable functions, where two measurable functions are
equivalent if they agree almost everywhere, i.e., they differ on a set of measure 0
.
Equations
- (α →ₘ[μ] β) = quotient (measure_theory.measure.ae_eq_setoid β μ)
Construct the equivalence class [f]
of a measurable function f
, based on the equivalence
relation of being almost everywhere equal.
Equations
- measure_theory.ae_eq_fun.mk f hf = quotient.mk' ⟨f, hf⟩
A representative of an ae_eq_fun
[f]
Given a measurable function g : β → γ
, and an almost everywhere equal function [f] : α →ₘ β
,
return the equivalence class of g ∘ f
, i.e., the almost everywhere equal function
[g ∘ f] : α →ₘ γ
.
Equations
- measure_theory.ae_eq_fun.comp g hg f = quotient.lift_on' f (λ (f : {f // measurable f}), measure_theory.ae_eq_fun.mk (g ∘ ↑f) _) _
The class of x ↦ (f x, g x)
.
Equations
- f.pair g = quotient.lift_on₂' f g (λ (f : {f // measurable f}) (g : {f // measurable f}), measure_theory.ae_eq_fun.mk (λ (x : α), (f.val x, g.val x)) _) measure_theory.ae_eq_fun.pair._proof_2
Given a measurable function g : β → γ → δ
, and almost everywhere equal functions
[f₁] : α →ₘ β
and [f₂] : α →ₘ γ
, return the equivalence class of the function
λa, g (f₁ a) (f₂ a)
, i.e., the almost everywhere equal function
[λa, g (f₁ a) (f₂ a)] : α →ₘ γ
Equations
- measure_theory.ae_eq_fun.comp₂ g hg f₁ f₂ = measure_theory.ae_eq_fun.comp (function.uncurry g) hg (f₁.pair f₂)
Interpret f : α →ₘ[μ] β
as a germ at μ.ae
forgetting that f
is measurable.
Equations
- f.to_germ = quotient.lift_on' f (λ (f : {f // measurable f}), ↑↑f) measure_theory.ae_eq_fun.to_germ._proof_1
Given a predicate p
and an equivalence class [f]
, return true if p
holds of f a
for almost all a
Equations
Given a relation r
and equivalence class [f]
and [g]
, return true if r
holds of
(f a, g a)
for almost all a
Equations
The equivalence class of a constant function: [λa:α, b]
, based on the equivalence relation of
being almost everywhere equal
Equations
- measure_theory.ae_eq_fun.const α b = measure_theory.ae_eq_fun.mk (λ (a : α), b) measurable_const
Equations
Equations
Equations
- measure_theory.ae_eq_fun.has_mul = {mul := measure_theory.ae_eq_fun.comp₂ has_mul.mul measure_theory.ae_eq_fun.has_mul._proof_1}
Equations
- measure_theory.ae_eq_fun.monoid = function.injective.monoid measure_theory.ae_eq_fun.to_germ measure_theory.ae_eq_fun.to_germ_injective measure_theory.ae_eq_fun.monoid._proof_1 measure_theory.ae_eq_fun.mul_to_germ
Equations
- measure_theory.ae_eq_fun.comm_monoid = function.injective.comm_monoid measure_theory.ae_eq_fun.to_germ measure_theory.ae_eq_fun.to_germ_injective measure_theory.ae_eq_fun.comm_monoid._proof_1 measure_theory.ae_eq_fun.comm_monoid._proof_2
Equations
- measure_theory.ae_eq_fun.group = function.injective.group measure_theory.ae_eq_fun.to_germ measure_theory.ae_eq_fun.to_germ_injective measure_theory.ae_eq_fun.group._proof_1 measure_theory.ae_eq_fun.group._proof_2 measure_theory.ae_eq_fun.inv_to_germ
Equations
- measure_theory.ae_eq_fun.comm_group = {mul := group.mul measure_theory.ae_eq_fun.group, mul_assoc := _, one := group.one measure_theory.ae_eq_fun.group, one_mul := _, mul_one := _, inv := group.inv measure_theory.ae_eq_fun.group, mul_left_inv := _, mul_comm := _}
Equations
- measure_theory.ae_eq_fun.has_scalar = {smul := λ (c : 𝕜) (f : α →ₘ[μ] γ), measure_theory.ae_eq_fun.comp (has_scalar.smul c) _ f}
For f : α → ennreal
, define ∫ [f]
to be ∫ f
Equations
- f.lintegral = quotient.lift_on' f (λ (f : {f // measurable f}), ∫⁻ (a : α), ↑f a ∂μ) measure_theory.ae_eq_fun.lintegral._proof_1
comp_edist [f] [g] a
will return `edist (f a) (g a)
Equations
Almost everywhere equal functions form an emetric_space
, with the emetric defined as
edist f g = ∫⁻ a, edist (f a) (g a)
.
Equations
- measure_theory.ae_eq_fun.emetric_space = {to_has_edist := {edist := λ (f g : α →ₘ[μ] γ), (f.edist g).lintegral}, edist_self := _, eq_of_edist_eq_zero := _, edist_comm := _, edist_triangle := _, to_uniform_space := uniform_space_of_edist (λ (f g : α →ₘ[μ] γ), (f.edist g).lintegral) measure_theory.ae_eq_fun.emetric_space._proof_5 measure_theory.ae_eq_fun.emetric_space._proof_6 measure_theory.ae_eq_fun.emetric_space._proof_7, uniformity_edist := _}
Positive part of an ae_eq_fun
.
Equations
- f.pos_part = measure_theory.ae_eq_fun.comp (λ (x : γ), max x 0) measure_theory.ae_eq_fun.pos_part._proof_1 f