@@ -174,10 +174,10 @@ lemma measurable_generate_from [measurable_space α] {s : set (set β)} {f : α
174
174
(h : ∀ t ∈ s, measurable_set (f ⁻¹' t)) : @measurable _ _ _ (generate_from s) f :=
175
175
measurable.of_le_map $ generate_from_le h
176
176
177
- variables [measurable_space β] [measurable_space γ] {f g : α → β}
177
+ variables {f g : α → β}
178
178
179
179
section typeclass_measurable_space
180
- variable [measurable_space α]
180
+ variables [measurable_space α] [measurable_space β] [measurable_space γ ]
181
181
182
182
@[nontriviality, measurability]
183
183
lemma subsingleton.measurable [subsingleton α] : measurable f :=
@@ -212,18 +212,21 @@ lemma measurable_of_fintype [fintype α] [measurable_singleton_class α] (f : α
212
212
213
213
end typeclass_measurable_space
214
214
215
- variable {m : measurable_space α}
215
+ variables {m : measurable_space α}
216
216
include m
217
217
218
+ @[measurability] lemma measurable.iterate {f : α → α} (hf : measurable f) : ∀ n, measurable (f^[n])
219
+ | 0 := measurable_id
220
+ | (n+1 ) := (measurable.iterate n).comp hf
221
+
222
+ variables {mβ : measurable_space β}
223
+ include mβ
224
+
218
225
@[measurability]
219
226
lemma measurable_set_preimage {t : set β} (hf : measurable f) (ht : measurable_set t) :
220
227
measurable_set (f ⁻¹' t) :=
221
228
hf ht
222
229
223
- @[measurability] lemma measurable.iterate {f : α → α} (hf : measurable f) : ∀ n, measurable (f^[n])
224
- | 0 := measurable_id
225
- | (n+1 ) := (measurable.iterate n).comp hf
226
-
227
230
@[measurability]
228
231
lemma measurable.piecewise {_ : decidable_pred (∈ s)} (hs : measurable_set s)
229
232
(hf : measurable f) (hg : measurable g) :
@@ -274,8 +277,6 @@ end measurable_functions
274
277
275
278
section constructions
276
279
277
- variables [measurable_space β] [measurable_space γ]
278
-
279
280
instance : measurable_space empty := ⊤
280
281
instance : measurable_space punit := ⊤ -- this also works for `unit`
281
282
instance : measurable_space bool := ⊤
@@ -290,7 +291,7 @@ instance : measurable_singleton_class ℕ := ⟨λ _, trivial⟩
290
291
instance : measurable_singleton_class ℤ := ⟨λ _, trivial⟩
291
292
instance : measurable_singleton_class ℚ := ⟨λ _, trivial⟩
292
293
293
- lemma measurable_to_encodable [measurable_space α] [encodable α] {f : β → α}
294
+ lemma measurable_to_encodable [measurable_space α] [encodable α] [measurable_space β] {f : β → α}
294
295
(h : ∀ y, measurable_set (f ⁻¹' {f y})) :
295
296
measurable f :=
296
297
begin
342
343
end nat
343
344
344
345
section quotient
345
- variables [measurable_space α]
346
+ variables [measurable_space α] [measurable_space β]
346
347
347
348
instance {α} {r : α → α → Prop } [m : measurable_space α] : measurable_space (quot r) :=
348
349
m.map (quot.mk r)
@@ -410,10 +411,20 @@ instance {p : α → Prop} [measurable_singleton_class α] : measurable_singleto
410
411
411
412
end
412
413
413
- variables {m : measurable_space α}
414
+ variables {m : measurable_space α} {mβ : measurable_space β}
414
415
415
416
include m
416
417
418
+ lemma measurable_set.subtype_image {s : set α} {t : set s}
419
+ (hs : measurable_set s) : measurable_set t → measurable_set ((coe : s → α) '' t)
420
+ | ⟨u, (hu : measurable_set u), (eq : coe ⁻¹' u = t)⟩ :=
421
+ begin
422
+ rw [← eq, subtype.image_preimage_coe],
423
+ exact hu.inter hs
424
+ end
425
+
426
+ include mβ
427
+
417
428
@[measurability] lemma measurable.subtype_coe {p : β → Prop } {f : α → subtype p}
418
429
(hf : measurable f) :
419
430
measurable (λ a : α, (f a : β)) :=
@@ -424,14 +435,6 @@ lemma measurable.subtype_mk {p : β → Prop} {f : α → β} (hf : measurable f
424
435
measurable (λ x, (⟨f x, h x⟩ : subtype p)) :=
425
436
λ t ⟨s, hs⟩, hs.2 ▸ by simp only [← preimage_comp, (∘), subtype.coe_mk, hf hs.1 ]
426
437
427
- lemma measurable_set.subtype_image {s : set α} {t : set s}
428
- (hs : measurable_set s) : measurable_set t → measurable_set ((coe : s → α) '' t)
429
- | ⟨u, (hu : measurable_set u), (eq : coe ⁻¹' u = t)⟩ :=
430
- begin
431
- rw [← eq, subtype.image_preimage_coe],
432
- exact hu.inter hs
433
- end
434
-
435
438
lemma measurable_of_measurable_union_cover
436
439
{f : α → β} (s t : set α) (hs : measurable_set s) (ht : measurable_set t) (h : univ ⊆ s ∪ t)
437
440
(hc : measurable (λ a : s, f a)) (hd : measurable (λ a : t, f a)) :
@@ -473,18 +476,25 @@ end subtype
473
476
474
477
section prod
475
478
476
- instance {α β} [m₁ : measurable_space α] [m₂ : measurable_space β] : measurable_space (α × β) :=
479
+ /-- A `measurable_space` structure on the product of two measurable spaces. -/
480
+ def measurable_space.prod {α β} (m₁ : measurable_space α) (m₂ : measurable_space β) :
481
+ measurable_space (α × β) :=
477
482
m₁.comap prod.fst ⊔ m₂.comap prod.snd
478
483
479
- @[measurability] lemma measurable_fst [measurable_space α] : measurable (prod.fst : α × β → α) :=
484
+ instance {α β} [m₁ : measurable_space α] [m₂ : measurable_space β] : measurable_space (α × β) :=
485
+ m₁.prod m₂
486
+
487
+ @[measurability] lemma measurable_fst [measurable_space α] [measurable_space β] :
488
+ measurable (prod.fst : α × β → α) :=
480
489
measurable.of_comap_le le_sup_left
481
490
482
- @[measurability] lemma measurable_snd [measurable_space α] : measurable (prod.snd : α × β → β) :=
491
+ @[measurability] lemma measurable_snd [measurable_space α] [measurable_space β] :
492
+ measurable (prod.snd : α × β → β) :=
483
493
measurable.of_comap_le le_sup_right
484
494
485
- variables {m : measurable_space α}
495
+ variables {m : measurable_space α} {mβ : measurable_space β} {mγ : measurable_space γ}
486
496
487
- include m
497
+ include m mβ mγ
488
498
489
499
lemma measurable.fst {f : α → β × γ} (hf : measurable f) :
490
500
measurable (λ a : α, (f a).1 ) :=
@@ -500,19 +510,24 @@ measurable.of_le_map $ sup_le
500
510
(by { rw [measurable_space.comap_le_iff_le_map, measurable_space.map_comp], exact hf₁ })
501
511
(by { rw [measurable_space.comap_le_iff_le_map, measurable_space.map_comp], exact hf₂ })
502
512
503
- lemma measurable.prod_mk {f : α → β} {g : α → γ} (hf : measurable f) (hg : measurable g) :
513
+ lemma measurable.prod_mk {β γ} {mβ : measurable_space β}
514
+ {mγ : measurable_space γ} {f : α → β} {g : α → γ} (hf : measurable f) (hg : measurable g) :
504
515
measurable (λ a : α, (f a, g a)) :=
505
516
measurable.prod hf hg
506
517
518
+ lemma measurable.prod_map [measurable_space δ] {f : α → β} {g : γ → δ} (hf : measurable f)
519
+ (hg : measurable g) : measurable (prod.map f g) :=
520
+ (hf.comp measurable_fst).prod_mk (hg.comp measurable_snd)
521
+
522
+ omit mγ
523
+
507
524
lemma measurable_prod_mk_left {x : α} : measurable (@prod.mk _ β x) :=
508
525
measurable_const.prod_mk measurable_id
509
526
510
527
lemma measurable_prod_mk_right {y : β} : measurable (λ x : α, (x, y)) :=
511
528
measurable_id.prod_mk measurable_const
512
529
513
- lemma measurable.prod_map [measurable_space δ] {f : α → β} {g : γ → δ} (hf : measurable f)
514
- (hg : measurable g) : measurable (prod.map f g) :=
515
- (hf.comp measurable_fst).prod_mk (hg.comp measurable_snd)
530
+ include mγ
516
531
517
532
lemma measurable.of_uncurry_left {f : α → β → γ} (hf : measurable (uncurry f)) {x : α} :
518
533
measurable (f x) :=
@@ -522,22 +537,20 @@ lemma measurable.of_uncurry_right {f : α → β → γ} (hf : measurable (uncur
522
537
measurable (λ x, f x y) :=
523
538
hf.comp measurable_prod_mk_right
524
539
525
- omit m
526
-
527
- lemma measurable_prod [measurable_space α] {f : α → β × γ} : measurable f ↔
540
+ lemma measurable_prod {f : α → β × γ} : measurable f ↔
528
541
measurable (λ a, (f a).1 ) ∧ measurable (λ a, (f a).2 ) :=
529
542
⟨λ hf, ⟨measurable_fst.comp hf, measurable_snd.comp hf⟩, λ h, measurable.prod h.1 h.2 ⟩
530
543
531
- @[measurability] lemma measurable_swap [measurable_space α] :
544
+ omit mγ
545
+
546
+ @[measurability] lemma measurable_swap :
532
547
measurable (prod.swap : α × β → β × α) :=
533
548
measurable.prod measurable_snd measurable_fst
534
549
535
- lemma measurable_swap_iff [ measurable_space α] {f : α × β → γ} :
550
+ lemma measurable_swap_iff {mγ : measurable_space γ} {f : α × β → γ} :
536
551
measurable (f ∘ prod.swap) ↔ measurable f :=
537
552
⟨λ hf, by { convert hf.comp measurable_swap, ext ⟨x, y⟩, refl }, λ hf, hf.comp measurable_swap⟩
538
553
539
- include m
540
-
541
554
@[measurability]
542
555
lemma measurable_set.prod {s : set α} {t : set β} (hs : measurable_set s) (ht : measurable_set t) :
543
556
measurable_set (s ×ˢ t) :=
@@ -565,11 +578,8 @@ lemma measurable_set_swap_iff {s : set (α × β)} :
565
578
measurable_set (prod.swap ⁻¹' s) ↔ measurable_set s :=
566
579
⟨λ hs, by { convert measurable_swap hs, ext ⟨x, y⟩, refl }, λ hs, measurable_swap hs⟩
567
580
568
- omit m
569
-
570
- lemma measurable_from_prod_encodable
571
- [measurable_space α] [encodable β] [measurable_singleton_class β]
572
- {f : α × β → γ} (hf : ∀ y, measurable (λ x, f (x, y))) :
581
+ lemma measurable_from_prod_encodable [encodable β] [measurable_singleton_class β]
582
+ {mγ : measurable_space γ} {f : α × β → γ} (hf : ∀ y, measurable (λ x, f (x, y))) :
573
583
measurable f :=
574
584
begin
575
585
intros s hs,
@@ -780,24 +790,27 @@ m₁.map sum.inl ⊓ m₂.map sum.inr
780
790
781
791
section sum
782
792
783
- @[measurability] lemma measurable_inl [measurable_space α] : measurable (@sum.inl α β) :=
793
+ @[measurability] lemma measurable_inl [measurable_space α] [measurable_space β] :
794
+ measurable (@sum.inl α β) :=
784
795
measurable.of_le_map inf_le_left
785
796
786
- @[measurability] lemma measurable_inr [measurable_space α] : measurable (@sum.inr α β) :=
797
+ @[measurability] lemma measurable_inr [measurable_space α] [measurable_space β] :
798
+ measurable (@sum.inr α β) :=
787
799
measurable.of_le_map inf_le_right
788
800
789
- variables {m : measurable_space α}
801
+ variables {m : measurable_space α} {mβ : measurable_space β}
790
802
791
- include m
803
+ include m mβ
792
804
793
- lemma measurable_sum {f : α ⊕ β → γ}
805
+ lemma measurable_sum {mγ : measurable_space γ} { f : α ⊕ β → γ}
794
806
(hl : measurable (f ∘ sum.inl)) (hr : measurable (f ∘ sum.inr)) : measurable f :=
795
807
measurable.of_comap_le $ le_inf
796
808
(measurable_space.comap_le_iff_le_map.2 $ hl)
797
809
(measurable_space.comap_le_iff_le_map.2 $ hr)
798
810
799
811
@[measurability]
800
- lemma measurable.sum_elim {f : α → γ} {g : β → γ} (hf : measurable f) (hg : measurable g) :
812
+ lemma measurable.sum_elim {mγ : measurable_space γ} {f : α → γ} {g : β → γ}
813
+ (hf : measurable f) (hg : measurable g) :
801
814
measurable (sum.elim f g) :=
802
815
measurable_sum hf hg
803
816
0 commit comments