@@ -1921,7 +1921,7 @@ lemma binaryDigit_partial_sum_le {x : ℝ} (hx : x ∈ Set.Ico (0:ℝ) 1) (n :
19211921 exact Nat.floor_le (mul_nonneg hx.1 (le_of_lt h2n_pos))
19221922
19231923/-- The partial sum bounds x from above: x < Sₙ(x) + 2^{-n} -/
1924- lemma binaryDigit_partial_sum_lt {x : ℝ} (hx : x ∈ Set.Ico ( 0 :ℝ) 1 ) (n : ℕ) :
1924+ lemma binaryDigit_partial_sum_lt (x : ℝ ) (n : ℕ) :
19251925 x < (⌊(2 :ℝ)^n * x⌋₊ : ℝ) / (2 :ℝ)^n + (1 :ℝ) / (2 :ℝ)^n := by
19261926 have h2n_pos : (0 :ℝ) < 2 ^n := by positivity
19271927 have := Nat.lt_floor_add_one ((2 :ℝ)^n * x)
@@ -2036,7 +2036,7 @@ lemma binaryDigit_zero_implies_upper_bound {y : ℝ} (hy : y ∈ Set.Ico (0:ℝ)
20362036 have h_floor_rel : ⌊(2 :ℝ)^(k+1 ) * y⌋₊ ≤ 2 * ⌊(2 :ℝ)^k * y⌋₊ := by
20372037 rw [heq]
20382038 exact floor_two_mul_even_le hy_nonneg h_floor_even
2039- have h_lt := binaryDigit_partial_sum_lt hy (k + 1 )
2039+ have h_lt := binaryDigit_partial_sum_lt y (k + 1 )
20402040 calc y < (⌊(2 :ℝ)^(k+1 ) * y⌋₊ : ℝ) / (2 :ℝ)^(k + 1 ) + (1 :ℝ) / (2 :ℝ)^(k + 1 ) := h_lt
20412041 _ = (⌊(2 :ℝ)^(k+1 ) * y⌋₊ + 1 : ℝ) / (2 :ℝ)^(k + 1 ) := by ring
20422042 _ ≤ (2 * ⌊(2 :ℝ)^k * y⌋₊ + 1 : ℝ) / (2 :ℝ)^(k + 1 ) := by
@@ -2084,9 +2084,9 @@ lemma binaryDigit_first_diff {x y : ℝ} (hx : x ∈ Set.Ico (0:ℝ) 1) (hy : y
20842084 have h_close : ∀ n, |x - y| < (1 :ℝ) / (2 :ℝ)^n := by
20852085 intro n
20862086 have hx_bounds := binaryDigit_partial_sum_le hx n
2087- have hx_bounds' := binaryDigit_partial_sum_lt hx n
2087+ have hx_bounds' := binaryDigit_partial_sum_lt x n
20882088 have hy_bounds := binaryDigit_partial_sum_le hy n
2089- have hy_bounds' := binaryDigit_partial_sum_lt hy n
2089+ have hy_bounds' := binaryDigit_partial_sum_lt y n
20902090 rw [h_floor_eq n] at hx_bounds hx_bounds'
20912091 rw [abs_lt]
20922092 constructor <;> linarith
@@ -2181,14 +2181,14 @@ lemma binaryToTernary_lt_of_digit_lt {x y : ℝ}
21812181 have hsum_x : Summable fx := binaryToTernary_summable x
21822182 have hsum_y : Summable fy := binaryToTernary_summable y
21832183 have h_split_x : ∑' j, fx j = ∑ j ∈ Finset.range k, fx j + fx k + ∑' j, fx (k + 1 + j) := by
2184- rw [← sum_add_tsum_nat_add (k + 1 ) hsum_x, Finset.sum_range_succ]
2184+ rw [← Summable. sum_add_tsum_nat_add (k + 1 ) hsum_x, Finset.sum_range_succ]
21852185 congr 1
21862186 congr 1
21872187 ext j
21882188 congr 1
21892189 omega
21902190 have h_split_y : ∑' j, fy j = ∑ j ∈ Finset.range k, fy j + fy k + ∑' j, fy (k + 1 + j) := by
2191- rw [← sum_add_tsum_nat_add (k + 1 ) hsum_y, Finset.sum_range_succ]
2191+ rw [← Summable. sum_add_tsum_nat_add (k + 1 ) hsum_y, Finset.sum_range_succ]
21922192 congr 1
21932193 congr 1
21942194 ext j
@@ -2734,33 +2734,33 @@ lemma binaryToTernary_eq_zero_iff {x : ℝ} (hx : x ∈ Set.Icc (0:ℝ) 1) :
27342734 rw [h]
27352735 exact binaryToTernary_props.zero_at_zero
27362736
2737- /-- Binary-to-ternary lifted to EuclideanSpace' 1 → EReal. -/
2738- noncomputable def f : EuclideanSpace' 1 → EReal :=
2737+ /-- binaryToTernary lifted to EuclideanSpace' 1 → EReal (called f in informal proof) . -/
2738+ noncomputable def f_lifted : EuclideanSpace' 1 → EReal :=
27392739 fun x => Real.toEReal (max 0 (binaryToTernary (EuclideanSpace'.equiv_Real x)))
27402740
2741- lemma f_unsigned : Unsigned f := by
2741+ lemma f_lifted_unsigned : Unsigned f_lifted := by
27422742 intro x
2743- simp only [f , ge_iff_le]
2743+ simp only [f_lifted , ge_iff_le]
27442744 rw [EReal.coe_nonneg]
27452745 exact le_max_left 0 _
27462746
2747- lemma f_le_one (x : EuclideanSpace' 1 ) : f x ≤ 1 := by
2748- simp only [f ]
2747+ lemma f_lifted_le_one (x : EuclideanSpace' 1 ) : f_lifted x ≤ 1 := by
2748+ simp only [f_lifted ]
27492749 have hg := binaryToTernary_props.bounded (EuclideanSpace'.equiv_Real x)
27502750 have h_max_le : max 0 (binaryToTernary (EuclideanSpace'.equiv_Real x)) ≤ 1 :=
27512751 max_le (by norm_num) hg
27522752 exact EReal.coe_le_coe_iff.mpr h_max_le
27532753
2754- lemma f_zero_outside (x : EuclideanSpace' 1 ) (hx : EuclideanSpace'.equiv_Real x ∉ Set.Icc 0 1 ) :
2755- f x = 0 := by
2756- simp only [f ]
2754+ lemma f_lifted_zero_outside (x : EuclideanSpace' 1 ) (hx : EuclideanSpace'.equiv_Real x ∉ Set.Icc 0 1 ) :
2755+ f_lifted x = 0 := by
2756+ simp only [f_lifted ]
27572757 have hg := binaryToTernary_props.zero_outside (EuclideanSpace'.equiv_Real x) hx
27582758 rw [hg]
27592759 simp
27602760
2761- lemma f_zero_at_zero (x : EuclideanSpace' 1 ) (hx : EuclideanSpace'.equiv_Real x = 0 ) :
2762- f x = 0 := by
2763- simp only [f ]
2761+ lemma f_lifted_zero_at_zero (x : EuclideanSpace' 1 ) (hx : EuclideanSpace'.equiv_Real x = 0 ) :
2762+ f_lifted x = 0 := by
2763+ simp only [f_lifted ]
27642764 have hg := binaryToTernary_props.zero_at_zero
27652765 rw [hx, hg]
27662766 simp
@@ -2769,15 +2769,15 @@ lemma f_zero_set_in_interval_countable :
27692769 (Set.Icc (0 :ℝ) 1 ∩ {x | binaryToTernary x = 0 }).Countable :=
27702770 binaryToTernary_props.zero_set_countable
27712771
2772- lemma f_zero_set_measurable : LebesgueMeasurable {x : EuclideanSpace' 1 | f x = 0 } := by
2773- have h_decomp : {x : EuclideanSpace' 1 | f x = 0 } =
2772+ lemma f_lifted_zero_set_measurable : LebesgueMeasurable {x : EuclideanSpace' 1 | f_lifted x = 0 } := by
2773+ have h_decomp : {x : EuclideanSpace' 1 | f_lifted x = 0 } =
27742774 (Real.equiv_EuclideanSpace' '' (Set.Icc 0 1 )ᶜ) ∪
27752775 (Real.equiv_EuclideanSpace' '' (Set.Icc 0 1 ∩ {x | binaryToTernary x = 0 })) := by
27762776 ext x
27772777 simp only [Set.mem_setOf_eq, Set.mem_union, Set.mem_image]
27782778 constructor
27792779 · intro hfx
2780- simp only [f ] at hfx
2780+ simp only [f_lifted ] at hfx
27812781 have hmax : max 0 (binaryToTernary (EuclideanSpace'.equiv_Real x)) = 0 := by
27822782 rw [EReal.coe_eq_zero] at hfx
27832783 exact hfx
@@ -2801,11 +2801,11 @@ lemma f_zero_set_measurable : LebesgueMeasurable {x : EuclideanSpace' 1 | f x =
28012801 exact ⟨h_in, EuclideanSpace'.equiv_Real.symm_apply_apply x⟩
28022802 · intro h
28032803 rcases h with ⟨r, hr, hrx⟩ | ⟨r, ⟨hr_in, hr_zero⟩, hrx⟩
2804- · simp only [f ]
2804+ · simp only [f_lifted ]
28052805 have hx_eq : EuclideanSpace'.equiv_Real x = r := by
28062806 rw [← hrx]; exact EuclideanSpace'.equiv_Real.apply_symm_apply r
28072807 rw [hx_eq, binaryToTernary_props.zero_outside r hr]; simp
2808- · simp only [f ]
2808+ · simp only [f_lifted ]
28092809 have hx_eq : EuclideanSpace'.equiv_Real x = r := by
28102810 rw [← hrx]; exact EuclideanSpace'.equiv_Real.apply_symm_apply r
28112811 rw [hx_eq, hr_zero]; simp
@@ -2832,15 +2832,15 @@ lemma f_zero_set_measurable : LebesgueMeasurable {x : EuclideanSpace' 1 | f x =
28322832 apply Set.Countable.image; exact f_zero_set_in_interval_countable
28332833 exact Countable.Lebesgue_measure Nat.one_pos h_countable
28342834
2835- /-- Sublevel sets of f are measurable (key lemma for f_measurable ). -/
2835+ /-- Sublevel sets of f_lifted are measurable (key lemma for f_lifted_measurable ). -/
28362836lemma sublevel_set_measurable (t : EReal) (ht_pos : 0 < t) (ht_lt_one : t < 1 ) :
2837- LebesgueMeasurable {x : EuclideanSpace' 1 | f x ≤ t} := by
2837+ LebesgueMeasurable {x : EuclideanSpace' 1 | f_lifted x ≤ t} := by
28382838 have h_outside_zero : ∀ x : EuclideanSpace' 1 , EuclideanSpace'.equiv_Real x ∉ Set.Icc 0 1 →
2839- f x ≤ t := fun x hx => by rw [f_zero_outside x hx]; exact le_of_lt ht_pos
2840- have h_decomp : {x : EuclideanSpace' 1 | f x ≤ t} =
2839+ f_lifted x ≤ t := fun x hx => by rw [f_lifted_zero_outside x hx]; exact le_of_lt ht_pos
2840+ have h_decomp : {x : EuclideanSpace' 1 | f_lifted x ≤ t} =
28412841 (Real.equiv_EuclideanSpace' '' Set.Iio 0 ) ∪
28422842 (Real.equiv_EuclideanSpace' '' Set.Ioi 1 ) ∪
2843- {x : EuclideanSpace' 1 | EuclideanSpace'.equiv_Real x ∈ Set.Icc 0 1 ∧ f x ≤ t} := by
2843+ {x : EuclideanSpace' 1 | EuclideanSpace'.equiv_Real x ∈ Set.Icc 0 1 ∧ f_lifted x ≤ t} := by
28442844 ext x
28452845 simp only [Set.mem_setOf_eq, Set.mem_union, Set.mem_image]
28462846 constructor
@@ -2900,7 +2900,7 @@ lemma sublevel_set_measurable (t : EReal) (ht_pos : 0 < t) (ht_lt_one : t < 1) :
29002900 continuous_toFun := hf_cont
29012901 continuous_invFun := hg_cont }
29022902 exact e.isOpenMap (Set.Ioi 1 ) isOpen_Ioi
2903- · -- Monotonicity case: {x ∈ [ 0,1 ] | f x ≤ t} is a convex set, hence measurable
2903+ · -- Monotonicity case: {x ∈ [ 0,1 ] | f_lifted x ≤ t} is a convex set, hence measurable
29042904 have ht_ne_top : t ≠ ⊤ := ne_of_lt (lt_of_lt_of_le ht_lt_one le_top)
29052905 have ht_ne_bot : t ≠ ⊥ := ne_of_gt (lt_of_le_of_lt bot_le ht_pos)
29062906 let t' := t.toReal
@@ -2913,22 +2913,22 @@ lemma sublevel_set_measurable (t : EReal) (ht_pos : 0 < t) (ht_lt_one : t < 1) :
29132913 have h : (t':EReal) < 1 := by rw [← ht_eq]; exact ht_lt_one
29142914 exact EReal.coe_lt_coe_iff.mp h
29152915 let S : Set ℝ := {r ∈ Set.Icc (0 :ℝ) 1 | binaryToTernary r ≤ t'}
2916- have h_set_eq : {x : EuclideanSpace' 1 | EuclideanSpace'.equiv_Real x ∈ Set.Icc 0 1 ∧ f x ≤ ↑t'} =
2916+ have h_set_eq : {x : EuclideanSpace' 1 | EuclideanSpace'.equiv_Real x ∈ Set.Icc 0 1 ∧ f_lifted x ≤ ↑t'} =
29172917 Real.equiv_EuclideanSpace' '' S := by
29182918 ext x
29192919 simp only [Set.mem_setOf_eq, Set.mem_image, S]
29202920 constructor
29212921 · intro ⟨h_in, hfx⟩
29222922 use EuclideanSpace'.equiv_Real x
29232923 refine ⟨⟨h_in, ?_⟩, EuclideanSpace'.equiv_Real.symm_apply_apply x⟩
2924- simp only [f ] at hfx
2924+ simp only [f_lifted ] at hfx
29252925 have h_max : max 0 (binaryToTernary (EuclideanSpace'.equiv_Real x)) ≤ t' := by
29262926 rw [EReal.coe_le_coe_iff] at hfx; exact hfx
29272927 exact le_of_max_le_right h_max
29282928 · intro ⟨r, ⟨hr_in, hr_le⟩, hrx⟩
29292929 constructor
29302930 · rw [← hrx, EuclideanSpace'.equiv_Real.apply_symm_apply]; exact hr_in
2931- · rw [← hrx]; simp only [f , EuclideanSpace'.equiv_Real.apply_symm_apply]
2931+ · rw [← hrx]; simp only [f_lifted , EuclideanSpace'.equiv_Real.apply_symm_apply]
29322932 rw [EReal.coe_le_coe_iff]
29332933 exact max_le (le_of_lt ht'_pos) hr_le
29342934 rw [h_set_eq]
@@ -3015,30 +3015,30 @@ lemma sublevel_set_measurable (t : EReal) (ht_pos : 0 < t) (ht_lt_one : t < 1) :
30153015 apply IsNull.measurable
30163016 exact Countable.Lebesgue_measure Nat.one_pos (Set.countable_singleton a |>.image _)
30173017
3018- lemma f_measurable : UnsignedMeasurable f := by
3018+ lemma f_lifted_measurable : UnsignedMeasurable f_lifted := by
30193019 -- Apply Lemma 1.3.9(viii): f is measurable iff ∀ t, {x | f(x) ≤ t} is measurable
3020- have h_iff : UnsignedMeasurable f ↔ (∀ t, LebesgueMeasurable {x | f x ≤ t}) :=
3021- (UnsignedMeasurable.TFAE f_unsigned ).out 0 7
3020+ have h_iff : UnsignedMeasurable f_lifted ↔ (∀ t, LebesgueMeasurable {x | f_lifted x ≤ t}) :=
3021+ (UnsignedMeasurable.TFAE f_lifted_unsigned ).out 0 7
30223022 apply h_iff.mpr
30233023 intro t
30243024 rcases lt_trichotomy t 0 with ht_neg | ht_zero | ht_pos
3025- · have h_empty : {x | f x ≤ t} = ∅ := by
3025+ · have h_empty : {x | f_lifted x ≤ t} = ∅ := by
30263026 ext x
30273027 simp only [Set.mem_setOf_eq, Set.mem_empty_iff_false, iff_false, not_le]
3028- exact lt_of_lt_of_le ht_neg (f_unsigned x)
3028+ exact lt_of_lt_of_le ht_neg (f_lifted_unsigned x)
30293029 rw [h_empty]; exact LebesgueMeasurable.empty
30303030 · subst ht_zero
3031- have h_eq : {x | f x ≤ (0 : EReal)} = {x | f x = 0 } := by
3031+ have h_eq : {x | f_lifted x ≤ (0 : EReal)} = {x | f_lifted x = 0 } := by
30323032 ext x
30333033 simp only [Set.mem_setOf_eq]
30343034 constructor
3035- · intro hle; exact le_antisymm hle (f_unsigned x)
3035+ · intro hle; exact le_antisymm hle (f_lifted_unsigned x)
30363036 · intro heq; rw [heq]
3037- rw [h_eq]; exact f_zero_set_measurable
3037+ rw [h_eq]; exact f_lifted_zero_set_measurable
30383038 · rcases le_or_gt 1 t with ht_ge_one | ht_lt_one
3039- · have h_univ : {x | f x ≤ t} = Set.univ := by
3039+ · have h_univ : {x | f_lifted x ≤ t} = Set.univ := by
30403040 ext x; simp only [Set.mem_setOf_eq, Set.mem_univ, iff_true]
3041- exact le_trans (f_le_one x) ht_ge_one
3041+ exact le_trans (f_lifted_le_one x) ht_ge_one
30423042 rw [h_univ]; exact IsOpen.measurable isOpen_univ
30433043 · exact sublevel_set_measurable t ht_pos ht_lt_one
30443044
@@ -3112,9 +3112,12 @@ lemma exists_nonmeasurable_with_cantor_image :
31123112end Remark_1_3_10
31133113
31143114/-- Remark 1.3.10: The inverse image of a Lebesgue measurable set by a measurable function
3115- need not be Lebesgue measurable. -/
3116- example : ∃ (f: EuclideanSpace' 1 → EReal) (hf: UnsignedMeasurable f) (E: Set (EuclideanSpace' 1 )) (hE: LebesgueMeasurable E), ¬ LebesgueMeasurable (f⁻¹' ((Real.toEReal ∘ EuclideanSpace'.equiv_Real) '' E)) := by
3117- use Remark_1_3_10.f, Remark_1_3_10.f_measurable
3115+ need not be Lebesgue measurable.
3116+ Proof: Let f = binaryToTernary (maps [ 0,1 ] → Cantor set), F ⊆ [ 0,1 ] non-measurable (Vitali).
3117+ Set E = f(F) ⊆ Cantor set. Then E is null (⊆ null set) hence measurable, but f⁻¹(E) = F
3118+ is non-measurable. (Uses injectivity of f on non-dyadic rationals A ⊇ F.) -/
3119+ example : ∃ (f: EuclideanSpace' 1 → EReal) (_hf: UnsignedMeasurable f) (E: Set (EuclideanSpace' 1 )) (_hE: LebesgueMeasurable E), ¬ LebesgueMeasurable (f⁻¹' ((Real.toEReal ∘ EuclideanSpace'.equiv_Real) '' E)) := by
3120+ use Remark_1_3_10.f_lifted, Remark_1_3_10.f_lifted_measurable
31183121 obtain ⟨F, A, hF_sub, hF_nonmeas, hF_image, hF_sub_A, hA_sub, hA_cocountable, hA_inj⟩ :=
31193122 Remark_1_3_10.exists_nonmeasurable_with_cantor_image
31203123 use Real.equiv_EuclideanSpace' '' (Remark_1_3_10.binaryToTernary '' F)
@@ -3125,10 +3128,88 @@ example : ∃ (f: EuclideanSpace' 1 → EReal) (hf: UnsignedMeasurable f) (E: Se
31253128 intro x hx; obtain ⟨y, hy, rfl⟩ := hx
31263129 exact ⟨y, hF_image hy, rfl⟩
31273130 case hPreimage_nonmeas =>
3128- -- Key: binaryToTernary is injective on A, F ⊆ A, so f⁻¹(E) ∩ A = F (measurable)
3131+ -- Key: f is injective on A ⊆ ℝ , F ⊆ A, so f⁻¹(E) ∩ A' = F' where A', F' are A, F in EuclideanSpace'
31293132 intro h_meas
31303133 apply hF_nonmeas
3131- sorry
3134+ have h_simplify : (Real.toEReal ∘ EuclideanSpace'.equiv_Real) ''
3135+ (Real.equiv_EuclideanSpace' '' (Remark_1_3_10.binaryToTernary '' F)) =
3136+ Real.toEReal '' (Remark_1_3_10.binaryToTernary '' F) := by
3137+ ext z; simp only [Set.mem_image, Function.comp_apply]
3138+ constructor
3139+ · rintro ⟨p, ⟨y, hy, rfl⟩, rfl⟩; exact ⟨y, hy, by simp⟩
3140+ · rintro ⟨y, hy, rfl⟩; exact ⟨Real.equiv_EuclideanSpace' y, ⟨y, hy, rfl⟩, by simp⟩
3141+ rw [h_simplify] at h_meas
3142+ -- A', F' := A, F viewed in EuclideanSpace' 1 (via ℝ ≃ EuclideanSpace' 1)
3143+ let A' := Real.equiv_EuclideanSpace' '' A
3144+ let F' := Real.equiv_EuclideanSpace' '' F
3145+ have h_preimage_inter : Remark_1_3_10.f_lifted ⁻¹' (Real.toEReal '' (Remark_1_3_10.binaryToTernary '' F)) ∩ A' = F' := by
3146+ ext p
3147+ simp only [Set.mem_inter_iff, Set.mem_preimage, Set.mem_image, A', F']
3148+ constructor
3149+ · rintro ⟨⟨z, ⟨w, hw, rfl⟩, hfp⟩, a, ha, rfl⟩
3150+ -- p = Real.equiv_EuclideanSpace' a, a ∈ A
3151+ -- f p = Real.toEReal z where z = binaryToTernary w, w ∈ F
3152+ -- So binaryToTernary a = z = binaryToTernary w
3153+ use a
3154+ refine ⟨?_, rfl⟩
3155+ -- Show a ∈ F using injectivity
3156+ have ha_in_Icc : a ∈ Set.Icc (0 :ℝ) 1 := hA_sub ha
3157+ have hw_in_A : w ∈ A := hF_sub_A hw
3158+ have hw_in_Icc : w ∈ Set.Icc (0 :ℝ) 1 := hA_sub hw_in_A
3159+ -- f p = binaryToTernary a (since a ∈ [ 0,1 ] and binaryToTernary a ≥ 0)
3160+ have hf_eq : Remark_1_3_10.f_lifted (Real.equiv_EuclideanSpace' a) =
3161+ Real.toEReal (Remark_1_3_10.binaryToTernary a) := by
3162+ simp only [Remark_1_3_10.f_lifted, EuclideanSpace'.equiv_Real.apply_symm_apply]
3163+ congr 1
3164+ exact max_eq_right (Remark_1_3_10.binaryToTernary_props.nonneg a)
3165+ rw [hf_eq] at hfp
3166+ have h_eq_values : Remark_1_3_10.binaryToTernary a = Remark_1_3_10.binaryToTernary w :=
3167+ (EReal.coe_injective hfp).symm
3168+ have ha_eq_w : a = w := hA_inj ha hw_in_A h_eq_values
3169+ rw [ha_eq_w]; exact hw
3170+ · rintro ⟨r, hr, rfl⟩
3171+ constructor
3172+ · -- f (Real.equiv_EuclideanSpace' r) ∈ Real.toEReal '' (binaryToTernary '' F)
3173+ use Remark_1_3_10.binaryToTernary r
3174+ refine ⟨⟨r, hr, rfl⟩, ?_⟩
3175+ simp only [Remark_1_3_10.f_lifted, EuclideanSpace'.equiv_Real.apply_symm_apply]
3176+ congr 1
3177+ exact (max_eq_right (Remark_1_3_10.binaryToTernary_props.nonneg r)).symm
3178+ · exact ⟨r, hF_sub_A hr, rfl⟩
3179+ -- A' is measurable: [ 0,1 ] ' \ A' is countable hence null, use of_ae_eq with [ 0,1 ] '
3180+ have hA'_meas : LebesgueMeasurable A' := by
3181+ let Icc' := Real.equiv_EuclideanSpace' '' Set.Icc (0 :ℝ) 1
3182+ have hIcc'_meas : LebesgueMeasurable Icc' := IsClosed.measurable <| by
3183+ have : Icc' = EuclideanSpace'.equiv_Real ⁻¹' Set.Icc 0 1 := by
3184+ ext x; simp only [Icc', Set.mem_image, Set.mem_preimage]
3185+ constructor
3186+ · rintro ⟨r, hr, rfl⟩; simp [hr]
3187+ · intro hx; exact ⟨_, hx, EuclideanSpace'.equiv_Real.symm_apply_apply x⟩
3188+ exact this ▸ IsClosed.preimage (continuous_apply _) isClosed_Icc
3189+ have h_diff_null : IsNull (Icc' \ A') := by
3190+ apply Countable.Lebesgue_measure Nat.one_pos
3191+ have : Icc' \ A' = Real.equiv_EuclideanSpace' '' (Set.Icc 0 1 \ A) := by
3192+ ext x; simp only [Set.mem_diff, Set.mem_image, Icc', A']
3193+ constructor
3194+ · rintro ⟨⟨r, hr, rfl⟩, hn⟩
3195+ exact ⟨r, ⟨hr, fun ha => hn ⟨r, ha, rfl⟩⟩, rfl⟩
3196+ · rintro ⟨r, ⟨hr, hn⟩, rfl⟩
3197+ exact ⟨⟨r, hr, rfl⟩, fun ⟨s, hs, he⟩ =>
3198+ hn (Real.equiv_EuclideanSpace'.injective he.symm ▸ hs)⟩
3199+ exact this ▸ Set.Countable.image hA_cocountable _
3200+ have h_A'_sub : A' ⊆ Icc' := by rintro _ ⟨a, ha, rfl⟩; exact ⟨a, hA_sub ha, rfl⟩
3201+ -- A' ∩ (Icc' \ A')ᶜ = Icc' ∩ (Icc' \ A')ᶜ = A' (since A' ⊆ Icc')
3202+ refine LebesgueMeasurable.of_ae_eq hIcc'_meas h_diff_null ?_
3203+ ext x; simp only [Set.mem_inter_iff, Set.mem_compl_iff, Set.mem_diff]
3204+ constructor
3205+ · intro ⟨hx, _⟩; exact ⟨h_A'_sub hx, fun ⟨_, h⟩ => h hx⟩
3206+ · intro ⟨hi, hn⟩; push_neg at hn; exact ⟨hn hi, fun ⟨_, h⟩ => h (hn hi)⟩
3207+ -- F' = f⁻¹'(...) ∩ A' is measurable
3208+ have : F' = Remark_1_3_10.f_lifted ⁻¹' (Real.toEReal '' (Remark_1_3_10.binaryToTernary '' F)) ∩ A' :=
3209+ h_preimage_inter.symm
3210+ simp only [F'] at this
3211+ rw [this]
3212+ exact LebesgueMeasurable.inter h_meas hA'_meas
31323213
31333214/-- Definition 1.3.11 (Complex measurability)-/
31343215def ComplexMeasurable {d:ℕ} (f: EuclideanSpace' d → ℂ) : Prop := ∃ (g: ℕ → EuclideanSpace' d → ℂ), (∀ n, ComplexSimpleFunction (g n)) ∧ (PointwiseConvergesTo g f)
0 commit comments