@@ -8,42 +8,42 @@ import measure_theory.integration
8
8
9
9
/-!
10
10
11
- # ALmost everywhere equal functions
11
+ # Almost everywhere equal functions
12
12
13
13
Two measurable functions are treated as identical if they are almost everywhere equal. We form the
14
14
set of equivalence classes under the relation of being almost everywhere equal, which is sometimes
15
- known as the L0 space.
15
+ known as the `L⁰` space.
16
16
17
- See `l1_space.lean` for L1 space.
17
+ See `l1_space.lean` for `L¹` space.
18
18
19
19
20
20
## Notation
21
21
22
- * `α →ₘ β` is the type of L0 space, where `α` is a measure space and `β` is a measurable space.
23
- `f : α →ₘ β` is a "function" in L0 . In comments, `[f]` is also used to denote an L0 function.
22
+ * `α →ₘ β` is the type of `L⁰` space, where `α` is a measure space and `β` is a measurable space.
23
+ `f : α →ₘ β` is a "function" in `L⁰` . In comments, `[f]` is also used to denote an `L⁰` function.
24
24
25
25
`ₘ` can be typed as `\_m`. Sometimes it is shown as a box if font is missing.
26
26
27
27
28
28
## Main statements
29
29
30
- * The linear structure of L0 :
31
- Addition and scalar multiplication are defined on L0 in the natural way, i.e.,
30
+ * The linear structure of `L⁰` :
31
+ Addition and scalar multiplication are defined on `L⁰` in the natural way, i.e.,
32
32
`[f] + [g] := [f + g]`, `c • [f] := [c • f]`. So defined, `α →ₘ β` inherits the linear structure
33
33
of `β`. For example, if `β` is a module, then `α →ₘ β` is a module over the same ring.
34
34
35
35
See `mk_add_mk`, `neg_mk`, `mk_sub_mk`, `smul_mk`,
36
36
`add_to_fun`, `neg_to_fun`, `sub_to_fun`, `smul_to_fun`
37
37
38
- * The order structure of L0 :
38
+ * The order structure of `L⁰` :
39
39
`≤` can be defined in a similar way: `[f] ≤ [g]` if `f a ≤ g a` for almost all `a` in domain.
40
40
And `α →ₘ β` inherits the preorder and partial order of `β`.
41
41
42
- TODO: Define `sup` and `inf` on L0 so that it forms a lattice. It seems that `β` must be a
42
+ TODO: Define `sup` and `inf` on `L⁰` so that it forms a lattice. It seems that `β` must be a
43
43
linear order, since otherwise `f ⊔ g` may not be a measurable function.
44
44
45
- * Emetric on L0 :
46
- If `β` is an `emetric_space`, then L0 can be made into an `emetric_space`, where
45
+ * Emetric on `L⁰` :
46
+ If `β` is an `emetric_space`, then `L⁰` can be made into an `emetric_space`, where
47
47
`edist [f] [g]` is defined to be `∫⁻ a, edist (f a) (g a)`.
48
48
49
49
The integral used here is `lintegral : (α → ennreal) → ennreal`, which is defined in the file
@@ -54,24 +54,22 @@ See `l1_space.lean` for L1 space.
54
54
55
55
## Implementation notes
56
56
57
- `f.to_fun` : To find a representative of `f : α →ₘ β`, use `f.to_fun`.
58
- For each operation `op` in L0 , there is a lemma called `op_to_fun`, characterizing,
57
+ * `f.to_fun` : To find a representative of `f : α →ₘ β`, use `f.to_fun`.
58
+ For each operation `op` in `L⁰` , there is a lemma called `op_to_fun`, characterizing,
59
59
say, `(f op g).to_fun`.
60
-
61
- `ae_eq_fun.mk` : To constructs an L0 function `α →ₘ β` from a measurable function `f : α → β`,
60
+ * `ae_eq_fun.mk` : To constructs an `L⁰` function `α →ₘ β` from a measurable function `f : α → β`,
62
61
use `ae_eq_fun.mk`
63
-
64
- `comp` : Use `comp g f` to get `[g ∘ f]` from `g : β → γ` and `[f] : α →ₘ γ`
65
-
66
- `comp₂` : Use `comp₂ g f₁ f₂ to get `[λa, g (f₁ a) (f₂ a)]`.
62
+ * `comp` : Use `comp g f` to get `[g ∘ f]` from `g : β → γ` and `[f] : α →ₘ γ`
63
+ * `comp₂` : Use `comp₂ g f₁ f₂ to get `[λa, g (f₁ a) (f₂ a)]`.
67
64
For example, `[f + g]` is `comp₂ (+)`
68
65
69
66
70
67
## Tags
71
68
72
- function space, almost everywhere equal, L0 , ae_eq_fun
69
+ function space, almost everywhere equal, `L⁰` , ae_eq_fun
73
70
74
71
-/
72
+
75
73
noncomputable theory
76
74
open_locale classical
77
75
@@ -162,7 +160,7 @@ def comp₂ {γ δ : Type*} [measurable_space γ] [measurable_space δ]
162
160
(g : β → γ → δ) (hg : measurable (λp:β×γ, g p.1 p.2 )) (f₁ : α →ₘ β) (f₂ : α →ₘ γ) : α →ₘ δ :=
163
161
begin
164
162
refine quotient.lift_on₂ f₁ f₂ (λf₁ f₂, mk (λa, g (f₁.1 a) (f₂.1 a)) $ _) _,
165
- { exact measurable.comp hg (measurable_prod_mk f₁.2 f₂.2 ) },
163
+ { exact measurable.comp hg (measurable.prod_mk f₁.2 f₂.2 ) },
166
164
{ rintros ⟨f₁, hf₁⟩ ⟨f₂, hf₂⟩ ⟨g₁, hg₁⟩ ⟨g₂, hg₂⟩ h₁ h₂,
167
165
refine quotient.sound _,
168
166
filter_upwards [h₁, h₂],
@@ -172,13 +170,13 @@ end
172
170
@[simp] lemma comp₂_mk_mk {γ δ : Type *} [measurable_space γ] [measurable_space δ]
173
171
(g : β → γ → δ) (hg : measurable (λp:β×γ, g p.1 p.2 )) (f₁ : α → β) (f₂ : α → γ) (hf₁ hf₂) :
174
172
comp₂ g hg (mk f₁ hf₁) (mk f₂ hf₂) =
175
- mk (λa, g (f₁ a) (f₂ a)) (measurable.comp hg (measurable_prod_mk hf₁ hf₂)) :=
173
+ mk (λa, g (f₁ a) (f₂ a)) (measurable.comp hg (measurable.prod_mk hf₁ hf₂)) :=
176
174
rfl
177
175
178
176
lemma comp₂_eq_mk_to_fun {γ δ : Type *} [measurable_space γ] [measurable_space δ]
179
177
(g : β → γ → δ) (hg : measurable (λp:β×γ, g p.1 p.2 )) (f₁ : α →ₘ β) (f₂ : α →ₘ γ) :
180
178
comp₂ g hg f₁ f₂ = mk (λa, g (f₁.to_fun a) (f₂.to_fun a))
181
- (hg.comp (measurable_prod_mk f₁.measurable f₂.measurable)) :=
179
+ (hg.comp (measurable.prod_mk f₁.measurable f₂.measurable)) :=
182
180
by conv_lhs { rw [self_eq_mk f₁, self_eq_mk f₂, comp₂_mk_mk] }
183
181
184
182
lemma comp₂_to_fun {γ δ : Type *} [measurable_space γ] [measurable_space δ]
199
197
`(f a, g a)` for almost all `a` -/
200
198
def lift_rel {γ : Type *} [measurable_space γ] (r : β → γ → Prop ) (f : α →ₘ β) (g : α →ₘ γ) : Prop :=
201
199
lift_pred (λp:β×γ, r p.1 p.2 )
202
- (comp₂ prod.mk (measurable_prod_mk
203
- (measurable_fst measurable_id) (measurable_snd measurable_id)) f g)
200
+ (comp₂ prod.mk (measurable.prod_mk
201
+ (measurable.fst measurable_id) (measurable.snd measurable_id)) f g)
204
202
205
203
lemma lift_rel_mk_mk {γ : Type *} [measurable_space γ] (r : β → γ → Prop )
206
204
(f : α → β) (g : α → γ) (hf hg) : lift_rel r (mk f hf) (mk g hg) ↔ ∀ₘ a, r (f a) (g a) :=
@@ -236,7 +234,7 @@ instance [partial_order β] : partial_order (α →ₘ β) :=
236
234
end ,
237
235
.. ae_eq_fun.preorder }
238
236
239
- /- TODO: Prove L0 space is a lattice if β is linear order.
237
+ /- TODO: Prove `L⁰` space is a lattice if β is linear order.
240
238
What if β is only a lattice? -/
241
239
242
240
-- instance [linear_order β] : semilattice_sup (α →ₘ β) :=
@@ -266,12 +264,12 @@ variables {γ : Type*}
266
264
[topological_space γ] [second_countable_topology γ] [add_monoid γ] [topological_add_monoid γ]
267
265
268
266
protected def add : (α →ₘ γ) → (α →ₘ γ) → (α →ₘ γ) :=
269
- comp₂ (+) (measurable_add (measurable_fst measurable_id) (measurable_snd measurable_id))
267
+ comp₂ (+) (measurable.add (measurable.fst measurable_id) (measurable.snd measurable_id))
270
268
271
269
instance : has_add (α →ₘ γ) := ⟨ae_eq_fun.add⟩
272
270
273
271
@[simp] lemma mk_add_mk (f g : α → γ) (hf hg) :
274
- (mk f hf) + (mk g hg) = mk (f + g) (measurable_add hf hg) := rfl
272
+ (mk f hf) + (mk g hg) = mk (f + g) (measurable.add hf hg) := rfl
275
273
276
274
lemma add_to_fun (f g : α →ₘ γ) : ∀ₘ a, (f + g).to_fun a = f.to_fun a + g.to_fun a :=
277
275
comp₂_to_fun _ _ _ _
@@ -300,11 +298,11 @@ section add_group
300
298
301
299
variables {γ : Type *} [topological_space γ] [add_group γ] [topological_add_group γ]
302
300
303
- protected def neg : (α →ₘ γ) → (α →ₘ γ) := comp has_neg.neg (measurable_neg measurable_id)
301
+ protected def neg : (α →ₘ γ) → (α →ₘ γ) := comp has_neg.neg (measurable.neg measurable_id)
304
302
305
303
instance : has_neg (α →ₘ γ) := ⟨ae_eq_fun.neg⟩
306
304
307
- @[simp] lemma neg_mk (f : α → γ) (hf) : -(mk f hf) = mk (-f) (measurable_neg hf) := rfl
305
+ @[simp] lemma neg_mk (f : α → γ) (hf) : -(mk f hf) = mk (-f) (measurable.neg hf) := rfl
308
306
309
307
lemma neg_to_fun (f : α →ₘ γ) : ∀ₘ a, (-f).to_fun a = - f.to_fun a := comp_to_fun _ _ _
310
308
@@ -316,7 +314,7 @@ instance : add_group (α →ₘ γ) :=
316
314
}
317
315
318
316
@[simp] lemma mk_sub_mk (f g : α → γ) (hf hg) :
319
- (mk f hf) - (mk g hg) = mk (λa, (f a) - (g a)) (measurable_sub hf hg) := rfl
317
+ (mk f hf) - (mk g hg) = mk (λa, (f a) - (g a)) (measurable.sub hf hg) := rfl
320
318
321
319
lemma sub_to_fun (f g : α →ₘ γ) : ∀ₘ a, (f - g).to_fun a = f.to_fun a - g.to_fun a :=
322
320
begin
@@ -403,8 +401,8 @@ instance : vector_space 𝕜 (α →ₘ γ) := { .. ae_eq_fun.semimodule }
403
401
404
402
end vector_space
405
403
406
- /- TODO : Prove that L0 is a complete space if the codomain is complete. -/
407
- /- TODO : Multiplicative structure of L0 if useful -/
404
+ /- TODO : Prove that `L⁰` is a complete space if the codomain is complete. -/
405
+ /- TODO : Multiplicative structure of `L⁰` if useful -/
408
406
409
407
open ennreal
410
408
541
539
542
540
end normed_space
543
541
542
+ section pos_part
543
+
544
+ variables {γ : Type *} [topological_space γ] [decidable_linear_order γ] [ordered_topology γ]
545
+ [second_countable_topology γ] [has_zero γ]
546
+
547
+ /-- Positive part of an `ae_eq_fun`. -/
548
+ def pos_part (f : α →ₘ γ) : α →ₘ γ :=
549
+ comp₂ max (measurable.max (measurable.fst measurable_id) (measurable.snd measurable_id)) f 0
550
+
551
+ lemma pos_part_to_fun (f : α →ₘ γ) : ∀ₘ a, (pos_part f).to_fun a = max (f.to_fun a) (0 :γ) :=
552
+ begin
553
+ filter_upwards [comp₂_to_fun max (measurable.max (measurable.fst measurable_id)
554
+ (measurable.snd measurable_id)) f 0 , @ae_eq_fun.zero_to_fun α γ],
555
+ simp only [mem_set_of_eq],
556
+ assume a h₁ h₂,
557
+ rw [pos_part, h₁, h₂]
558
+ end
559
+
560
+ end pos_part
561
+
544
562
end ae_eq_fun
545
563
546
564
end measure_theory
0 commit comments