Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit d76c75e

Browse files
committed
feat(measure_theory): cleanup and generalize measure' (#3648)
There were two functions `measure'` and `outer_measure'` with undescriptive names, and which were not very general rename `measure'` -> `extend` rename `outer_measure'` -> `induced_outer_measure` generalize both `extend` and `induced_outer_measure` to an arbitrary subset of `set α` (instead of just the measurable sets). Most lemmas still hold in full generality, sometimes with a couple more assumptions. For the lemmas that need more assumptions, we have also kept the version that is just for `is_measurable`. Move functions `extend`, `induced_outer_measure` and `trim` to `outer_measure.lean`. rename `caratheodory_is_measurable` -> `of_function_caratheodory` rename `trim_ge` -> `le_trim` Make the section on caratheodory sets not private (and give a more descriptive name to lemmas). Style in `measurable_space` and `outer_measure`
1 parent fc65ba0 commit d76c75e

File tree

5 files changed

+463
-356
lines changed

5 files changed

+463
-356
lines changed

src/data/equiv/basic.lean

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ universes u v w z
1717
variables {α : Sort u} {β : Sort v} {γ : Sort w}
1818

1919
/-- `α ≃ β` is the type of functions from `α → β` with a two-sided inverse. -/
20+
@[nolint inhabited]
2021
structure equiv (α : Sort*) (β : Sort*) :=
2122
(to_fun : α → β)
2223
(inv_fun : β → α)
@@ -1198,6 +1199,14 @@ equiv.set.image_of_inj_on f s (λ x y hx hy hxy, H hxy)
11981199
@[simp] theorem image_apply {α β} (f : α → β) (s : set α) (H : injective f) (a h) :
11991200
set.image f s H ⟨a, h⟩ = ⟨f a, mem_image_of_mem _ h⟩ := rfl
12001201

1202+
lemma image_symm_preimage {α β} {f : α → β} (hf : injective f) (u s : set α) :
1203+
(λ x, (set.image f s hf).symm x : f '' s → α) ⁻¹' u = coe ⁻¹' (f '' u) :=
1204+
begin
1205+
ext ⟨b, a, has, rfl⟩,
1206+
have : ∀(h : ∃a', a' ∈ s ∧ a' = a), classical.some h = a := λ h, (classical.some_spec h).2,
1207+
simp [equiv.set.image, equiv.set.image_of_inj_on, hf, this],
1208+
end
1209+
12011210
/-- If `f : α → β` is an injective function, then `α` is equivalent to the range of `f`. -/
12021211
protected noncomputable def range {α β} (f : α → β) (H : injective f) :
12031212
α ≃ range f :=

src/measure_theory/lebesgue_measure.lean

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ def lebesgue_outer : outer_measure ℝ :=
9090
outer_measure.of_function lebesgue_length lebesgue_length_empty
9191

9292
lemma lebesgue_outer_le_length (s : set ℝ) : lebesgue_outer s ≤ lebesgue_length s :=
93-
outer_measure.of_function_le _ _ _
93+
outer_measure.of_function_le _
9494

9595
lemma lebesgue_length_subadditive {a b : ℝ} {c d : ℕ → ℝ}
9696
(ss : Icc a b ⊆ ⋃i, Ioo (c i) (d i)) :
@@ -176,7 +176,7 @@ end
176176

177177
lemma is_lebesgue_measurable_Iio {c : ℝ} :
178178
lebesgue_outer.caratheodory.is_measurable (Iio c) :=
179-
outer_measure.caratheodory_is_measurable $ λ t,
179+
outer_measure.of_function_caratheodory $ λ t,
180180
le_infi $ λ a, le_infi $ λ b, le_infi $ λ h, begin
181181
refine le_trans (add_le_add
182182
(lebesgue_length_mono $ inter_subset_inter_left _ h)
@@ -193,7 +193,7 @@ end
193193

194194
theorem lebesgue_outer_trim : lebesgue_outer.trim = lebesgue_outer :=
195195
begin
196-
refine le_antisymm (λ s, _) (outer_measure.trim_ge _),
196+
refine le_antisymm (λ s, _) (outer_measure.le_trim _),
197197
rw outer_measure.trim_eq_infi,
198198
refine le_infi (λ f, le_infi $ λ hf,
199199
ennreal.le_of_forall_epsilon_le $ λ ε ε0 h, _),

src/measure_theory/measurable_space.lean

Lines changed: 48 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ lemma is_measurable.congr {s t : set α} (hs : is_measurable s) (h : s = t) :
106106
is_measurable t :=
107107
by rwa ← h
108108

109-
lemma is_measurable.Union [encodable β] {f : β → set α} (h : ∀b, is_measurable (f b)) :
109+
lemma is_measurable.Union [encodable β] {{f : β → set α}} (h : ∀b, is_measurable (f b)) :
110110
is_measurable (⋃b, f b) :=
111111
by { rw ← encodable.Union_decode2, exact
112112
‹measurable_space α›.is_measurable_Union
@@ -123,39 +123,37 @@ end
123123

124124
lemma is_measurable.sUnion {s : set (set α)} (hs : countable s) (h : ∀t∈s, is_measurable t) :
125125
is_measurable (⋃₀ s) :=
126-
by rw sUnion_eq_bUnion; exact is_measurable.bUnion hs h
126+
by { rw sUnion_eq_bUnion, exact is_measurable.bUnion hs h }
127127

128128
lemma is_measurable.Union_Prop {p : Prop} {f : p → set α} (hf : ∀b, is_measurable (f b)) :
129129
is_measurable (⋃b, f b) :=
130-
by by_cases p; simp [h, hf, is_measurable.empty]
130+
by { by_cases p; simp [h, hf, is_measurable.empty] }
131131

132132
lemma is_measurable.Inter [encodable β] {f : β → set α} (h : ∀b, is_measurable (f b)) :
133133
is_measurable (⋂b, f b) :=
134134
is_measurable.compl_iff.1 $
135-
by rw compl_Inter; exact is_measurable.Union (λ b, (h b).compl)
135+
by { rw compl_Inter, exact is_measurable.Union (λ b, (h b).compl) }
136136

137137
lemma is_measurable.bInter {f : β → set α} {s : set β} (hs : countable s)
138138
(h : ∀b∈s, is_measurable (f b)) : is_measurable (⋂b∈s, f b) :=
139139
is_measurable.compl_iff.1 $
140-
by rw compl_bInter; exact is_measurable.bUnion hs (λ b hb, (h b hb).compl)
140+
by { rw compl_bInter, exact is_measurable.bUnion hs (λ b hb, (h b hb).compl) }
141141

142142
lemma is_measurable.sInter {s : set (set α)} (hs : countable s) (h : ∀t∈s, is_measurable t) :
143143
is_measurable (⋂₀ s) :=
144-
by rw sInter_eq_bInter; exact is_measurable.bInter hs h
144+
by { rw sInter_eq_bInter, exact is_measurable.bInter hs h }
145145

146146
lemma is_measurable.Inter_Prop {p : Prop} {f : p → set α} (hf : ∀b, is_measurable (f b)) :
147147
is_measurable (⋂b, f b) :=
148-
by by_cases p; simp [h, hf, is_measurable.univ]
148+
by { by_cases p; simp [h, hf, is_measurable.univ] }
149149

150150
lemma is_measurable.union {s₁ s₂ : set α}
151151
(h₁ : is_measurable s₁) (h₂ : is_measurable s₂) : is_measurable (s₁ ∪ s₂) :=
152-
by rw union_eq_Union; exact
153-
is_measurable.Union (bool.forall_bool.2 ⟨h₂, h₁⟩)
152+
by { rw union_eq_Union, exact is_measurable.Union (bool.forall_bool.2 ⟨h₂, h₁⟩) }
154153

155154
lemma is_measurable.inter {s₁ s₂ : set α}
156155
(h₁ : is_measurable s₁) (h₂ : is_measurable s₂) : is_measurable (s₁ ∩ s₂) :=
157-
by rw inter_eq_compl_compl_union_compl; exact
158-
(h₁.compl.union h₂.compl).compl
156+
by { rw inter_eq_compl_compl_union_compl, exact (h₁.compl.union h₂.compl).compl }
159157

160158
lemma is_measurable.diff {s₁ s₂ : set α}
161159
(h₁ : is_measurable s₁) (h₂ : is_measurable s₂) : is_measurable (s₁ \ s₂) :=
@@ -166,7 +164,7 @@ lemma is_measurable.disjointed {f : ℕ → set α} (h : ∀i, is_measurable (f
166164
disjointed_induct (h n) (assume t i ht, is_measurable.diff ht $ h _)
167165

168166
lemma is_measurable.const (p : Prop) : is_measurable {a : α | p} :=
169-
by by_cases p; simp [h, is_measurable.empty]; apply is_measurable.univ
167+
by { by_cases p; simp [h, is_measurable.empty]; apply is_measurable.univ }
170168

171169
end
172170

@@ -262,7 +260,7 @@ protected def mk_of_closure (g : set (set α)) (hg : {t | (generate_from g).is_m
262260
lemma mk_of_closure_sets {s : set (set α)}
263261
{hs : {t | (generate_from s).is_measurable t} = s} :
264262
measurable_space.mk_of_closure s hs = generate_from s :=
265-
measurable_space.ext $ assume t, show t ∈ s ↔ _, by rw [← hs] {occs := occurrences.pos [1] }; refl
263+
measurable_space.ext $ assume t, show t ∈ s ↔ _, by { conv_lhs { rw [← hs] }, refl }
266264

267265
/-- We get a Galois insertion between `σ`-algebras on `α` and `set (set α)` by using `generate_from`
268266
on one side and the collection of measurable sets on the other side. -/
@@ -306,7 +304,8 @@ show s ∈ (⋂m∈ms, {t | @is_measurable _ m t }) ↔ _, by simp
306304

307305
@[simp] theorem is_measurable_infi {ι} {m : ι → measurable_space α} {s : set α} :
308306
@is_measurable _ (infi m) s ↔ ∀ i, @is_measurable _ (m i) s :=
309-
show s ∈ (λm, {s | @is_measurable _ m s }) (infi m) ↔ _, by rw (@gi_generate_from α).gc.u_infi; simp; refl
307+
show s ∈ (λm, {s | @is_measurable _ m s }) (infi m) ↔ _,
308+
by { rw (@gi_generate_from α).gc.u_infi, simp }
310309

311310
theorem is_measurable_sup {m₁ m₂ : measurable_space α} {s : set α} :
312311
@is_measurable _ (m₁ ⊔ m₂) s ↔ generate_measurable (m₁.is_measurable ∪ m₂.is_measurable) s :=
@@ -341,7 +340,7 @@ protected def map (f : α → β) (m : measurable_space α) : measurable_space
341340
{ is_measurable := λs, m.is_measurable $ f ⁻¹' s,
342341
is_measurable_empty := m.is_measurable_empty,
343342
is_measurable_compl := assume s hs, m.is_measurable_compl _ hs,
344-
is_measurable_Union := assume f hf, by rw [preimage_Union]; exact m.is_measurable_Union _ hf }
343+
is_measurable_Union := assume f hf, by { rw [preimage_Union], exact m.is_measurable_Union _ hf }}
345344

346345
@[simp] lemma map_id : m.map id = m :=
347346
measurable_space.ext $ assume s, iff.rfl
@@ -415,7 +414,7 @@ open measurable_space
415414

416415
/-- A function `f` between measurable spaces is measurable if the preimage of every
417416
measurable set is measurable. -/
418-
def measurable [measurable_space α] [ measurable_space β] (f : α → β) : Prop :=
417+
def measurable [measurable_space α] [measurable_space β] (f : α → β) : Prop :=
419418
∀ ⦃t : set β⦄, is_measurable t → is_measurable (f ⁻¹' t)
420419

421420
lemma measurable_iff_le_map {m₁ : measurable_space α} {m₂ : measurable_space β} {f : α → β} :
@@ -497,7 +496,7 @@ end
497496

498497
lemma measurable_unit [measurable_space α] (f : unit → α) : measurable f :=
499498
have f = (λu, f ()) := funext $ assume ⟨⟩, rfl,
500-
by rw this; exact measurable_const
499+
by { rw this, exact measurable_const }
501500

502501
section nat
503502

@@ -601,8 +600,8 @@ lemma measurable.prod [measurable_space α] [measurable_space β] [measurable_sp
601600
{f : α → β × γ} (hf₁ : measurable (λa, (f a).1)) (hf₂ : measurable (λa, (f a).2)) :
602601
measurable f :=
603602
measurable.of_le_map $ sup_le
604-
(by rw [measurable_space.comap_le_iff_le_map, measurable_space.map_comp]; exact hf₁)
605-
(by rw [measurable_space.comap_le_iff_le_map, measurable_space.map_comp]; exact hf₂)
603+
(by { rw [measurable_space.comap_le_iff_le_map, measurable_space.map_comp], exact hf₁ })
604+
(by { rw [measurable_space.comap_le_iff_le_map, measurable_space.map_comp], exact hf₂ })
606605

607606
lemma measurable.prod_mk [measurable_space α] [measurable_space β] [measurable_space γ]
608607
{f : α → β} {g : α → γ} (hf : measurable f) (hg : measurable g) : measurable (λa:α, (f a, g a)) :=
@@ -654,23 +653,23 @@ measurable_sum hf hg
654653

655654
lemma is_measurable.inl_image {s : set α} (hs : is_measurable s) :
656655
is_measurable (sum.inl '' s : set (α ⊕ β)) :=
657-
show is_measurable (sum.inl ⁻¹' _), by rwa [preimage_image_eq]; exact (assume a b, sum.inl.inj),
656+
show is_measurable (sum.inl ⁻¹' _), by { rwa [preimage_image_eq], exact (λ a b, sum.inl.inj) },
658657
have sum.inr ⁻¹' (sum.inl '' s : set (α ⊕ β)) = ∅ :=
659658
eq_empty_of_subset_empty $ assume x ⟨y, hy, eq⟩, by contradiction,
660-
show is_measurable (sum.inr ⁻¹' _), by rw [this]; exact is_measurable.empty⟩
659+
show is_measurable (sum.inr ⁻¹' _), by { rw [this], exact is_measurable.empty }
661660

662661
lemma is_measurable_range_inl : is_measurable (range sum.inl : set (α ⊕ β)) :=
663-
by rw [← image_univ]; exact is_measurable.univ.inl_image
662+
by { rw [← image_univ], exact is_measurable.univ.inl_image }
664663

665664
lemma is_measurable_inr_image {s : set β} (hs : is_measurable s) :
666665
is_measurable (sum.inr '' s : set (α ⊕ β)) :=
667666
have sum.inl ⁻¹' (sum.inr '' s : set (α ⊕ β)) = ∅ :=
668667
eq_empty_of_subset_empty $ assume x ⟨y, hy, eq⟩, by contradiction,
669-
show is_measurable (sum.inl ⁻¹' _), by rw [this]; exact is_measurable.empty,
670-
show is_measurable (sum.inr ⁻¹' _), by rwa [preimage_image_eq]; exact (assume a b, sum.inr.inj)
668+
show is_measurable (sum.inl ⁻¹' _), by { rw [this], exact is_measurable.empty },
669+
show is_measurable (sum.inr ⁻¹' _), by { rwa [preimage_image_eq], exact λ a b, sum.inr.inj }
671670

672671
lemma is_measurable_range_inr : is_measurable (range sum.inr : set (α ⊕ β)) :=
673-
by rw [← image_univ]; exact is_measurable_inr_image is_measurable.univ
672+
by { rw [← image_univ], exact is_measurable_inr_image is_measurable.univ }
674673

675674
end sum
676675

@@ -725,8 +724,8 @@ lemma symm_to_equiv {α β} [measurable_space α] [measurable_space β] (e : mea
725724
protected def cast {α β} [i₁ : measurable_space α] [i₂ : measurable_space β]
726725
(h : α = β) (hi : i₁ == i₂) : measurable_equiv α β :=
727726
{ to_equiv := equiv.cast h,
728-
measurable_to_fun := by substI h; substI hi; exact measurable_id,
729-
measurable_inv_fun := by substI h; substI hi; exact measurable_id }
727+
measurable_to_fun := by { substI h, substI hi, exact measurable_id },
728+
measurable_inv_fun := by { substI h, substI hi, exact measurable_id }}
730729

731730
protected lemma measurable {α β} [measurable_space α] [measurable_space β]
732731
(e : measurable_equiv α β) : measurable (e : α → β) :=
@@ -807,14 +806,8 @@ noncomputable def set.image [measurable_space α] [measurable_space β]
807806
{ to_equiv := equiv.set.image f s hf,
808807
measurable_to_fun := (hfm.comp measurable_id.subtype_coe).subtype_mk,
809808
measurable_inv_fun :=
810-
assume t ⟨u, (hu : is_measurable u), eq⟩,
811809
begin
812-
clear_, subst eq,
813-
show is_measurable {x : f '' s | ((equiv.set.image f s hf).inv_fun x).val ∈ u},
814-
have : ∀(a ∈ s) (h : ∃a', a' ∈ s ∧ a' = a), classical.some h = a :=
815-
λa ha h, (classical.some_spec h).2,
816-
rw show {x:f '' s | ((equiv.set.image f s hf).inv_fun x).val ∈ u} = subtype.val ⁻¹' (f '' u),
817-
by ext ⟨b, a, hbs, rfl⟩; simp [equiv.set.image, equiv.set.image_of_inj_on, hf, this _ hbs],
810+
rintro t ⟨u, hu, rfl⟩, simp [preimage_preimage, equiv.set.image_symm_preimage hf],
818811
exact measurable_subtype_coe (hfi u hu)
819812
end }
820813

@@ -833,10 +826,10 @@ def set.range_inl [measurable_space α] [measurable_space β] :
833826
measurable_equiv (range sum.inl : set (α ⊕ β)) α :=
834827
{ to_fun := λab, match ab with
835828
| ⟨sum.inl a, _⟩ := a
836-
| ⟨sum.inr b, p⟩ := have false, by cases p; contradiction, this.elim
829+
| ⟨sum.inr b, p⟩ := have false, by { cases p, contradiction }, this.elim
837830
end,
838831
inv_fun := λa, ⟨sum.inl a, a, rfl⟩,
839-
left_inv := assume ⟨ab, a, eq⟩, by subst eq; refl,
832+
left_inv := by { rintro ⟨ab, a, rfl⟩, refl },
840833
right_inv := assume a, rfl,
841834
measurable_to_fun := assume s (hs : is_measurable s),
842835
begin
@@ -851,10 +844,10 @@ def set.range_inr [measurable_space α] [measurable_space β] :
851844
measurable_equiv (range sum.inr : set (α ⊕ β)) β :=
852845
{ to_fun := λab, match ab with
853846
| ⟨sum.inr b, _⟩ := b
854-
| ⟨sum.inl a, p⟩ := have false, by cases p; contradiction, this.elim
847+
| ⟨sum.inl a, p⟩ := have false, by { cases p, contradiction }, this.elim
855848
end,
856849
inv_fun := λb, ⟨sum.inr b, b, rfl⟩,
857-
left_inv := assume ⟨ab, b, eq⟩, by subst eq; refl,
850+
left_inv := by { rintro ⟨ab, b, rfl⟩, refl },
858851
right_inv := assume b, rfl,
859852
measurable_to_fun := assume s (hs : is_measurable s),
860853
begin
@@ -875,7 +868,7 @@ def sum_prod_distrib (α β γ) [measurable_space α] [measurable_space β] [mea
875868
((range sum.inr).prod univ)
876869
(is_measurable_range_inl.prod is_measurable.univ)
877870
(is_measurable_range_inr.prod is_measurable.univ)
878-
(assume ⟨ab, c⟩ s, by cases ab; simp [set.prod_eq])
871+
(by { rintro ⟨a|b, c⟩; simp [set.prod_eq] })
879872
_
880873
_,
881874
{ refine (set.prod (range sum.inl) univ).symm.measurable_coe_iff.1 _,
@@ -929,11 +922,8 @@ structure dynkin_system (α : Type*) :=
929922

930923
namespace dynkin_system
931924

932-
@[ext] lemma ext :
933-
∀{d₁ d₂ : dynkin_system α}, (∀s:set α, d₁.has s ↔ d₂.has s) → d₁ = d₂
934-
| ⟨s₁, _, _, _⟩ ⟨s₂, _, _, _⟩ h :=
935-
have s₁ = s₂, from funext $ assume x, propext $ h x,
936-
by subst this
925+
@[ext] lemma ext : ∀{d₁ d₂ : dynkin_system α}, (∀s:set α, d₁.has s ↔ d₂.has s) → d₁ = d₂
926+
| ⟨s₁, _, _, _⟩ ⟨s₂, _, _, _⟩ h := have s₁ = s₂, from funext $ assume x, propext $ h x, by subst this
937927

938928
variable (d : dynkin_system α)
939929

@@ -946,17 +936,17 @@ by simpa using d.has_compl d.has_empty
946936
theorem has_Union {β} [encodable β] {f : β → set α}
947937
(hd : pairwise (disjoint on f)) (h : ∀i, d.has (f i)) : d.has (⋃i, f i) :=
948938
by { rw ← encodable.Union_decode2, exact
949-
d.has_Union_nat (Union_decode2_disjoint_on hd)
950-
(λ n, encodable.Union_decode2_cases d.has_empty h) }
939+
d.has_Union_nat (Union_decode2_disjoint_on hd)
940+
(λ n, encodable.Union_decode2_cases d.has_empty h) }
951941

952942
theorem has_union {s₁ s₂ : set α}
953943
(h₁ : d.has s₁) (h₂ : d.has s₂) (h : s₁ ∩ s₂ ⊆ ∅) : d.has (s₁ ∪ s₂) :=
954-
by rw union_eq_Union; exact
955-
d.has_Union (pairwise_disjoint_on_bool.2 h)
956-
(bool.forall_bool.2 ⟨h₂, h₁⟩)
944+
by { rw union_eq_Union, exact
945+
d.has_Union (pairwise_disjoint_on_bool.2 h) (bool.forall_bool.2 ⟨h₂, h₁⟩) }
957946

958947
lemma has_diff {s₁ s₂ : set α} (h₁ : d.has s₁) (h₂ : d.has s₂) (h : s₂ ⊆ s₁) : d.has (s₁ \ s₂) :=
959-
d.has_compl_iff.1 begin
948+
begin
949+
apply d.has_compl_iff.1,
960950
simp [diff_eq, compl_inter],
961951
exact d.has_union (d.has_compl h₁) h₂ (λ x ⟨h₁, h₂⟩, h₁ (h h₂)),
962952
end
@@ -1020,9 +1010,9 @@ def restrict_on {s : set α} (h : d.has s) : dynkin_system α :=
10201010
has_empty := by simp [d.has_empty],
10211011
has_compl := assume t hts,
10221012
have tᶜ ∩ s = ((t ∩ s)ᶜ) \ sᶜ,
1023-
from set.ext $ assume x, by by_cases x ∈ s; simp [h],
1024-
by rw [this]; from d.has_diff (d.has_compl hts) (d.has_compl h)
1025-
(compl_subset_compl.mpr $ inter_subset_right _ _),
1013+
from set.ext $ assume x, by { by_cases x ∈ s; simp [h] },
1014+
by { rw [this], exact d.has_diff (d.has_compl hts) (d.has_compl h)
1015+
(compl_subset_compl.mpr $ inter_subset_right _ _) },
10261016
has_Union_nat := assume f hd hf,
10271017
begin
10281018
rw [inter_comm, inter_Union],
@@ -1058,8 +1048,8 @@ generate_from s = (generate s).to_measurable_space (assume t₁ t₂, generate_i
10581048
le_antisymm
10591049
(generate_from_le $ assume t ht, generate_has.basic t ht)
10601050
(of_measurable_space_le_of_measurable_space_iff.mp $
1061-
by rw [of_measurable_space_to_measurable_space];
1062-
from (generate_le _ $ assume t ht, is_measurable_generate_from ht))
1051+
by { rw [of_measurable_space_to_measurable_space],
1052+
exact (generate_le _ $ assume t ht, is_measurable_generate_from ht) })
10631053

10641054
end dynkin_system
10651055

@@ -1071,12 +1061,12 @@ lemma induction_on_inter {C : set α → Prop} {s : set (set α)} {m : measurabl
10711061
(∀i, m.is_measurable (f i)) → (∀i, C (f i)) → C (⋃i, f i)) :
10721062
∀{t}, m.is_measurable t → C t :=
10731063
have eq : m.is_measurable = dynkin_system.generate_has s,
1074-
by rw [h_eq, dynkin_system.generate_from_eq h_inter]; refl,
1064+
by { rw [h_eq, dynkin_system.generate_from_eq h_inter], refl },
10751065
assume t ht,
10761066
have dynkin_system.generate_has s t, by rwa [eq] at ht,
10771067
this.rec_on h_basic h_empty
1078-
(assume t ht, h_compl t $ by rw [eq]; exact ht)
1079-
(assume f hf ht, h_union f hf $ assume i, by rw [eq]; exact ht _)
1068+
(assume t ht, h_compl t $ by { rw [eq], exact ht })
1069+
(assume f hf ht, h_union f hf $ assume i, by { rw [eq], exact ht _ })
10801070

10811071
end measurable_space
10821072

0 commit comments

Comments
 (0)