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 afor almost allain domain. Andα →ₘ βinherits the preorder and partial order ofβ.TODO: Define
supandinfonL⁰so that it forms a lattice. It seems thatβmust be a linear order, since otherwisef ⊔ gmay not be a measurable function.
Implementation notes #
f.to_fun: To find a representative off : α →ₘ β, usef.to_fun. For each operationopinL⁰, 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.mkcomp: Usecomp g fto get[g ∘ f]fromg : β → γand[f] : α →ₘ γcomp₂: Usecomp₂ g f₁ f₂ to get[λa, g (f₁ a) (f₂ a)]. For example,[f + g]iscomp₂ (+)`
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' := _}