You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: analysis/Analysis/MeasureTheory/Section_1_1_2.lean
+64-25Lines changed: 64 additions & 25 deletions
Original file line number
Diff line number
Diff line change
@@ -273,7 +273,8 @@ theorem JordanMeasurable.union {d:ℕ} {E F : Set (EuclideanSpace' d)}
273
273
have h_inner_outer_eq : ∀ ε > 0, ∃ A B : Set (EuclideanSpace' d), ∃ hA : IsElementary A, ∃ hB : IsElementary B, A ⊆ E ∪ F ∧ E ∪ F ⊆ B ∧ (IsElementary.measure (hB.sdiff hA)) ≤ ε := by
@@ -285,7 +286,7 @@ theorem JordanMeasurable.union {d:ℕ} {E F : Set (EuclideanSpace' d)}
285
286
exact hB₁.sdiff hA₁
286
287
exact hB₂.sdiff hA₂
287
288
exact by linarith! [ hB₁_minus_A₁, hB₂_minus_A₂ ] ;
288
-
intro x hx; aesop;
289
+
intro x hx; simp_all only [gt_iff_lt, Set.mem_diff, Set.mem_union, not_or, not_false_eq_true, and_true];
289
290
refine' le_antisymm _ _;
290
291
· apply_rules [ Jordan_inner_le_outer ];
291
292
exact hE_bounded.union hF_bounded;
@@ -327,7 +328,8 @@ theorem JordanMeasurable.inter {d:ℕ} {E F : Set (EuclideanSpace' d)}
327
328
have h_jordan_measurable : ∀ ε > 0, ∃ A B : Set (EuclideanSpace' d), ∃ hA : IsElementary A, ∃ hB : IsElementary B, A ⊆ E ∧ E ⊆ B ∧ (hB.sdiff hA).measure ≤ ε / 2 ∧ ∃ C D : Set (EuclideanSpace' d), ∃ hC : IsElementary C, ∃ hD : IsElementary D, C ⊆ F ∧ F ⊆ D ∧ (hD.sdiff hC).measure ≤ ε / 2 := by
328
329
intro ε hε_pos
329
330
obtain ⟨A, B, hA, hB, hA_sub, hB_sup, hA_B⟩ : ∃ A B : Set (EuclideanSpace' d), ∃ hA : IsElementary A, ∃ hB : IsElementary B, A ⊆ E ∧ E ⊆ B ∧ (hB.sdiff hA).measure ≤ ε / 2 := by
330
-
have := JordanMeasurable.equiv (hE.1) |>.out 01; aesop;
331
+
have := JordanMeasurable.equiv (hE.1) |>.out 01; simp_all only [gt_iff_lt, exists_and_left, implies_true,
obtain ⟨C, D, hC, hD, hC_sub, hD_sup, hC_D⟩ : ∃ C D : Set (EuclideanSpace' d), ∃ hC : IsElementary C, ∃ hD : IsElementary D, C ⊆ F ∧ F ⊆ D ∧ (hD.sdiff hC).measure ≤ ε / 2 := by
332
334
have := JordanMeasurable.equiv ( show Bornology.IsBounded F from hF.1 ) |>.out 01;
theoremJordanMeasurable.sdiff {d:ℕ} {E F : Set (EuclideanSpace' d)}
373
374
(hE: JordanMeasurable E) (hF: JordanMeasurable F) : JordanMeasurable (E \ F) := by
@@ -381,7 +382,10 @@ theorem JordanMeasurable.sdiff {d:ℕ} {E F : Set (EuclideanSpace' d)}
381
382
exact this.mp hE ( ε / 2 ) ( half_pos hε_pos );
382
383
have h_diff : ∀ ε > 0, ∃ C D : Set (EuclideanSpace' d), ∃ hC : IsElementary C, ∃ hD : IsElementary D, C ⊆ F ∧ F ⊆ D ∧ (hD.sdiff hC).measure ≤ ε / 2 := by
383
384
have := JordanMeasurable.equiv hF.1;
384
-
have := this.out 01; aesop;
385
+
have := this.out 01;
386
+
intro ε_1 a
387
+
simp_all only [gt_iff_lt, exists_and_left, implies_true, exists_prop, List.tfae_cons_self, iff_true,
388
+
div_pos_iff_of_pos_left, Nat.ofNat_pos];
385
389
exact ⟨ A, B, hA, hB, hAB.1, hAB.2.1, hAB.2.2, h_diff ε hε_pos ⟩;
@@ -411,10 +415,11 @@ theorem JordanMeasurable.sdiff {d:ℕ} {E F : Set (EuclideanSpace' d)}
411
415
have hB_le_inner : hB.measure ≤ hA.measure + (hB.sdiff hA).measure := by
412
416
have hB_le_inner : hB.measure ≤ (hA.union (hB.sdiff hA)).measure := by
413
417
apply_rules [ IsElementary.measure_mono ];
414
-
exact fun x hx => by by_cases hx' : x ∈ A <;> aesop;
415
-
exact hB_le_inner.trans ( by simpa using IsElementary.measure_of_disjUnion hA ( hB.sdiff hA ) ( Set.disjoint_left.mpr fun x hx₁ hx₂ => by aesop ) |> le_of_eq );
418
+
exact fun x hx => by by_cases hx' : x ∈ A <;> simp_all only [gt_iff_lt, exists_and_left,
419
+
Set.union_diff_self, Set.mem_union, or_true];
420
+
exact hB_le_inner.trans ( by simpa using IsElementary.measure_of_disjUnion hA ( hB.sdiff hA ) ( Set.disjoint_left.mpr fun x hx₁ hx₂ => by simp_all only [gt_iff_lt,
convert JordanMeasurable.mes_of_disjUnion ( hE E ( Finset.mem_insert_self E S ) ) ( JordanMeasurable.union' fun x hx => hE x ( Finset.mem_insert_of_mem hx ) ) _ using1;
515
526
· congr! 1;
516
527
· rw [ eq_comm ];
517
528
convert JordanMeasurable.eq_outer ( hE E ( Finset.mem_insert_self E S ) ) using1;
518
-
· convert ih ( fun x hx => hE x ( Finset.mem_insert_of_mem hx ) ) ( fun x hx y hy hxy => hdisj ( by aesop ) ( by aesop ) hxy ) |> Eq.symm;
· simp_all only [Finset.notMem_empty, Set.iUnion_of_empty, Set.iUnion_empty, mes_of_empty, Finset.univ_eq_empty,
588
+
Finset.coe_mem, Finset.sum_empty, le_refl];
565
589
· convert le_trans ( JordanMeasurable.mes_of_union ( hE a ( Finset.mem_insert_self a S ) ) ( JordanMeasurable.union' fun E hE' => hE E ( Finset.mem_insert_of_mem hE' ) ) ) ( add_le_add_left ( ih fun E hE' => hE E ( Finset.mem_insert_of_mem hE' ) ) _ ) using1;
566
-
· aesop;
590
+
· simp_all only [Finset.univ_eq_attach, Finset.mem_insert, Finset.coe_mem, or_true, Set.iUnion_iUnion_eq_or_left];
0 commit comments