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.
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 // ae_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 an almost everywhere 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 measurable representative of an ae_eq_fun
[f]
Equations
- measure_theory.ae_eq_fun.has_coe_to_fun = {F := λ (f : α →ₘ[μ] β), α → β, coe := λ (f : α →ₘ[μ] β), ae_measurable.mk (quotient.out' f).val _}
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 // ae_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 // ae_measurable f μ}) (g : {f // ae_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 almost everywhere
measurable.
Equations
- f.to_germ = quotient.lift_on' f (λ (f : {f // ae_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) ae_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.has_inv = {inv := measure_theory.ae_eq_fun.comp has_inv.inv measure_theory.ae_eq_fun.has_inv._proof_1}
Equations
- measure_theory.ae_eq_fun.has_div = {div := measure_theory.ae_eq_fun.comp₂ has_div.div measure_theory.ae_eq_fun.has_div._proof_1}
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 measure_theory.ae_eq_fun.div_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 := _, npow := group.npow measure_theory.ae_eq_fun.group, npow_zero' := _, npow_succ' := _, inv := group.inv measure_theory.ae_eq_fun.group, div := group.div measure_theory.ae_eq_fun.group, div_eq_mul_inv := _, gpow := group.gpow measure_theory.ae_eq_fun.group, gpow_zero' := _, gpow_succ' := _, gpow_neg' := _, 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 : α → ℝ≥0∞
, define ∫ [f]
to be ∫ f
Equations
- f.lintegral = quotient.lift_on' f (λ (f : {f // ae_measurable f μ}), ∫⁻ (a : α), ↑f a ∂μ) measure_theory.ae_eq_fun.lintegral._proof_1
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
The equivalence class of μ
-almost-everywhere measurable functions associated to a continuous
map.
Equations
The add_hom
from the group of continuous maps from α
to β
to the group of
equivalence classes of μ
-almost-everywhere measurable functions.
The mul_hom
from the group of continuous maps from α
to β
to the group of equivalence
classes of μ
-almost-everywhere measurable functions.
Equations
- continuous_map.to_ae_eq_fun_mul_hom μ = {to_fun := continuous_map.to_ae_eq_fun μ _inst_6, map_one' := _, map_mul' := _}
The linear map from the group of continuous maps from α
to β
to the group of equivalence
classes of μ
-almost-everywhere measurable functions.
Equations
- continuous_map.to_ae_eq_fun_linear_map μ = {to_fun := (continuous_map.to_ae_eq_fun_add_hom μ).to_fun, map_add' := _, map_smul' := _}