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

Commit 914250e

Browse files
committed
chore(data/real/ennreal): adjust form of to_real_pos_iff (#11047)
We have a principle (which may not have been crystallized at the time of writing of `data/real/ennreal`) that hypotheses of lemmas should contain the weak form `a ≠ ∞`, while conclusions should report the strong form `a < ∞`, and also the same for `a ≠ 0`, `0 < a`. In the case of the existing lemma ```lean lemma to_real_pos_iff : 0 < a.to_real ↔ (0 < a ∧ a ≠ ∞):= ``` it's not clear whether the RHS of the iff should count as a hypothesis or a conclusion. So I have rewritten to provide two forms, ```lean lemma to_real_pos_iff : 0 < a.to_real ↔ (0 < a ∧ a < ∞):= lemma to_real_pos {a : ℝ≥0∞} (ha₀ : a ≠ 0) (ha_top : a ≠ ∞) : 0 < a.to_real := ``` Having both versions available shortens many proofs slightly.
1 parent c9f47c9 commit 914250e

File tree

5 files changed

+48
-54
lines changed

5 files changed

+48
-54
lines changed

src/analysis/convex/integral.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ begin
6767
(λ y, μ ((F n) ⁻¹' {y})) (λ _ _, (measure_ne_top _ _))],
6868
rw [← this, simple_func.integral],
6969
refine hs.center_mass_mem (λ _ _, ennreal.to_real_nonneg) _ _,
70-
{ rw [this, ennreal.to_real_pos_iff, pos_iff_ne_zero, ne.def, measure.measure_univ_eq_zero],
71-
exact ⟨hμ, measure_ne_top _ _ },
70+
{ rw this,
71+
exact ennreal.to_real_pos (mt measure.measure_univ_eq_zero.mp hμ) (measure_ne_top _ _) },
7272
{ simp only [simple_func.mem_range],
7373
rintros _ ⟨x, rfl⟩,
7474
exact simple_func.approx_on_mem hfm h₀ n x }

src/data/real/ennreal.lean

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -939,7 +939,7 @@ le_antisymm
939939
by rintros b rfl; rwa [← coe_mul, ← coe_one, coe_le_coe, ← nnreal.inv_le hr] at hb)
940940
(Inf_le $ by simp; rw [← coe_mul, mul_inv_cancel hr]; exact le_refl 1)
941941

942-
lemma coe_inv_le : (↑r⁻¹ : ℝ≥0∞) ≤ (↑r)⁻¹ :=
942+
lemma coe_inv_le : (↑r⁻¹ : ℝ≥0∞) ≤ (↑r)⁻¹ :=
943943
if hr : r = 0 then by simp only [hr, inv_zero, coe_zero, le_top]
944944
else by simp only [coe_inv hr, le_refl]
945945

@@ -1074,7 +1074,7 @@ begin
10741074
by_cases hb : b ≠ 0,
10751075
{ have : (b : ℝ≥0∞) ≠ 0, by simp [hb],
10761076
rw [← ennreal.mul_le_mul_left this coe_ne_top],
1077-
suffices : ↑b * a ≤ (↑b * ↑b⁻¹) * c ↔ a * ↑b ≤ c,
1077+
suffices : ↑b * a ≤ (↑b * ↑b⁻¹) * c ↔ a * ↑b ≤ c,
10781078
{ simpa [some_eq_coe, div_eq_mul_inv, hb, mul_left_comm, mul_comm, mul_assoc] },
10791079
rw [← coe_mul, mul_inv_cancel hb, coe_one, one_mul, mul_comm] },
10801080
{ simp at hb,
@@ -1309,7 +1309,7 @@ begin
13091309
lift y to ℝ≥0 using h'y,
13101310
have A : y ≠ 0, by simpa only [ne.def, coe_eq_zero] using (ennreal.zero_lt_one.trans hy).ne',
13111311
obtain ⟨n, hn, h'n⟩ : ∃ n : ℤ, y ^ n ≤ x ∧ x < y ^ (n + 1),
1312-
{ refine nnreal.exists_mem_Ico_zpow _ (one_lt_coe_iff.1 hy),
1312+
{ refine nnreal.exists_mem_Ico_zpow _ (one_lt_coe_iff.1 hy),
13131313
simpa only [ne.def, coe_eq_zero] using hx },
13141314
refine ⟨n, _, _⟩,
13151315
{ rwa [← ennreal.coe_zpow A, ennreal.coe_le_coe] },
@@ -1324,7 +1324,7 @@ begin
13241324
lift y to ℝ≥0 using h'y,
13251325
have A : y ≠ 0, by simpa only [ne.def, coe_eq_zero] using (ennreal.zero_lt_one.trans hy).ne',
13261326
obtain ⟨n, hn, h'n⟩ : ∃ n : ℤ, y ^ n < x ∧ x ≤ y ^ (n + 1),
1327-
{ refine nnreal.exists_mem_Ioc_zpow _ (one_lt_coe_iff.1 hy),
1327+
{ refine nnreal.exists_mem_Ioc_zpow _ (one_lt_coe_iff.1 hy),
13281328
simpa only [ne.def, coe_eq_zero] using hx },
13291329
refine ⟨n, _, _⟩,
13301330
{ rwa [← ennreal.coe_zpow A, ennreal.coe_lt_coe] },
@@ -1470,16 +1470,22 @@ lemma to_real_max (hr : a ≠ ∞) (hp : b ≠ ∞) :
14701470
(λ h, by simp only [h, (ennreal.to_real_le_to_real hr hp).2 h, max_eq_right])
14711471
(λ h, by simp only [h, (ennreal.to_real_le_to_real hp hr).2 h, max_eq_left])
14721472

1473-
lemma to_nnreal_pos_iff : 0 < a.to_nnreal ↔ (0 < a ∧ a ∞) :=
1473+
lemma to_nnreal_pos_iff : 0 < a.to_nnreal ↔ (0 < a ∧ a < ∞) :=
14741474
begin
14751475
cases a,
14761476
{ simp [none_eq_top] },
14771477
{ simp [some_eq_coe] }
14781478
end
14791479

1480-
lemma to_real_pos_iff : 0 < a.to_real ↔ (0 < a ∧ a ≠ ∞):=
1480+
lemma to_nnreal_pos {a : ℝ≥0∞} (ha₀ : a ≠ 0) (ha_top : a ≠ ∞) : 0 < a.to_nnreal :=
1481+
to_nnreal_pos_iff.mpr ⟨bot_lt_iff_ne_bot.mpr ha₀, lt_top_iff_ne_top.mpr ha_top⟩
1482+
1483+
lemma to_real_pos_iff : 0 < a.to_real ↔ (0 < a ∧ a < ∞):=
14811484
(nnreal.coe_pos).trans to_nnreal_pos_iff
14821485

1486+
lemma to_real_pos {a : ℝ≥0∞} (ha₀ : a ≠ 0) (ha_top : a ≠ ∞) : 0 < a.to_real :=
1487+
to_real_pos_iff.mpr ⟨bot_lt_iff_ne_bot.mpr ha₀, lt_top_iff_ne_top.mpr ha_top⟩
1488+
14831489
lemma of_real_le_of_real {p q : ℝ} (h : p ≤ q) : ennreal.of_real p ≤ ennreal.of_real q :=
14841490
by simp [ennreal.of_real, real.to_nnreal_le_to_nnreal h]
14851491

@@ -1612,7 +1618,7 @@ begin
16121618
{ simp },
16131619
rcases eq_or_lt_of_le (le_top : p ≤ ⊤) with rfl | hp',
16141620
{ simp },
1615-
simp [ennreal.to_real_pos_iff, hp, hp'.ne],
1621+
simp [ennreal.to_real_pos_iff, hp, hp'],
16161622
end
16171623

16181624
protected lemma trichotomy₂ {p q : ℝ≥0∞} (hpq : p ≤ q) :
@@ -1621,12 +1627,12 @@ protected lemma trichotomy₂ {p q : ℝ≥0∞} (hpq : p ≤ q) :
16211627
begin
16221628
rcases eq_or_lt_of_le (bot_le : 0 ≤ p) with (rfl : 0 = p) | (hp : 0 < p),
16231629
{ simpa using q.trichotomy },
1624-
rcases eq_or_lt_of_le (le_top : q ≤ ) with rfl | hq,
1630+
rcases eq_or_lt_of_le (le_top : q ≤ ) with rfl | hq,
16251631
{ simpa using p.trichotomy },
16261632
repeat { right },
16271633
have hq' : 0 < q := lt_of_lt_of_le hp hpq,
1628-
have hp' : p < := lt_of_le_of_lt hpq hq,
1629-
simp [ennreal.to_real_le_to_real, ennreal.to_real_pos_iff, hpq, hp, hp'.ne, hq', hq.ne],
1634+
have hp' : p < := lt_of_le_of_lt hpq hq,
1635+
simp [ennreal.to_real_le_to_real hp'.ne hq.ne, ennreal.to_real_pos_iff, hpq, hp, hp', hq', hq],
16301636
end
16311637

16321638
protected lemma dichotomy (p : ℝ≥0∞) [fact (1 ≤ p)] : p = ∞ ∨ 1 ≤ p.to_real :=

src/measure_theory/function/lp_space.lean

Lines changed: 15 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ lemma lintegral_rpow_nnnorm_lt_top_of_snorm_lt_top {f : α → F} (hp_ne_zero :
174174
∫⁻ a, ∥f a∥₊ ^ p.to_real ∂μ < ∞ :=
175175
begin
176176
apply lintegral_rpow_nnnorm_lt_top_of_snorm'_lt_top,
177-
{ exact ennreal.to_real_pos_iff.mpr ⟨bot_lt_iff_ne_bot.mpr hp_ne_zero, hp_ne_top },
177+
{ exact ennreal.to_real_pos hp_ne_zero hp_ne_top },
178178
{ simpa [snorm_eq_snorm' hp_ne_zero hp_ne_top] using hfp }
179179
end
180180

@@ -184,7 +184,7 @@ lemma snorm_lt_top_iff_lintegral_rpow_nnnorm_lt_top {f : α → F} (hp_ne_zero :
184184
⟨lintegral_rpow_nnnorm_lt_top_of_snorm_lt_top hp_ne_zero hp_ne_top,
185185
begin
186186
intros h,
187-
have hp' := ennreal.to_real_pos_iff.mpr ⟨bot_lt_iff_ne_bot.mpr hp_ne_zero, hp_ne_top,
187+
have hp' := ennreal.to_real_pos hp_ne_zero hp_ne_top,
188188
have : 0 < 1 / p.to_real := div_pos zero_lt_one hp',
189189
simpa [snorm_eq_lintegral_rpow_nnnorm hp_ne_zero hp_ne_top] using
190190
ennreal.rpow_lt_top_of_nonneg (le_of_lt this) (ne_of_lt h)
@@ -226,8 +226,7 @@ begin
226226
by_cases h_top : p = ∞,
227227
{ simp only [h_top, snorm_exponent_top, snorm_ess_sup_zero], },
228228
rw ←ne.def at h0,
229-
simp [snorm_eq_snorm' h0 h_top,
230-
ennreal.to_real_pos_iff.mpr ⟨lt_of_le_of_ne (zero_le _) h0.symm, h_top⟩],
229+
simp [snorm_eq_snorm' h0 h_top, ennreal.to_real_pos h0 h_top],
231230
end
232231

233232
@[simp] lemma snorm_zero' : snorm (λ x : α, (0 : F)) p μ = 0 :=
@@ -261,8 +260,7 @@ begin
261260
by_cases h_top : p = ∞,
262261
{ simp [h_top], },
263262
rw ←ne.def at h0,
264-
simp [snorm_eq_snorm' h0 h_top, snorm',
265-
ennreal.to_real_pos_iff.mpr ⟨lt_of_le_of_ne (zero_le _) h0.symm, h_top⟩],
263+
simp [snorm_eq_snorm' h0 h_top, snorm', ennreal.to_real_pos h0 h_top],
266264
end
267265

268266
end zero
@@ -307,21 +305,19 @@ lemma snorm_const (c : F) (h0 : p ≠ 0) (hμ : μ ≠ 0) :
307305
begin
308306
by_cases h_top : p = ∞,
309307
{ simp [h_top, snorm_ess_sup_const c hμ], },
310-
simp [snorm_eq_snorm' h0 h_top, snorm'_const,
311-
ennreal.to_real_pos_iff.mpr ⟨lt_of_le_of_ne (zero_le _) h0.symm, h_top⟩],
308+
simp [snorm_eq_snorm' h0 h_top, snorm'_const, ennreal.to_real_pos h0 h_top],
312309
end
313310

314311
lemma snorm_const' (c : F) (h0 : p ≠ 0) (h_top: p ≠ ∞) :
315312
snorm (λ x : α , c) p μ = (∥c∥₊ : ℝ≥0∞) * (μ set.univ) ^ (1/(ennreal.to_real p)) :=
316313
begin
317-
simp [snorm_eq_snorm' h0 h_top, snorm'_const,
318-
ennreal.to_real_pos_iff.mpr ⟨lt_of_le_of_ne (zero_le _) h0.symm, h_top⟩],
314+
simp [snorm_eq_snorm' h0 h_top, snorm'_const, ennreal.to_real_pos h0 h_top],
319315
end
320316

321317
lemma snorm_const_lt_top_iff {p : ℝ≥0∞} {c : F} (hp_ne_zero : p ≠ 0) (hp_ne_top : p ≠ ∞) :
322318
snorm (λ x : α, c) p μ < ∞ ↔ c = 0 ∨ μ set.univ < ∞ :=
323319
begin
324-
have hp : 0 < p.to_real, from ennreal.to_real_pos_iff.mpr ⟨hp_ne_zero.bot_lt, hp_ne_top,
320+
have hp : 0 < p.to_real, from ennreal.to_real_pos hp_ne_zero hp_ne_top,
325321
by_cases hμ : μ = 0,
326322
{ simp only [hμ, measure.coe_zero, pi.zero_apply, or_true, with_top.zero_lt_top,
327323
snorm_measure_zero], },
@@ -666,8 +662,7 @@ begin
666662
by_cases h_top : p = ∞,
667663
{ rw [h_top, snorm_exponent_top, snorm_ess_sup_eq_zero_iff], },
668664
rw snorm_eq_snorm' h0 h_top,
669-
exact snorm'_eq_zero_iff
670-
(ennreal.to_real_pos_iff.mpr ⟨lt_of_le_of_ne (zero_le _) h0.symm, h_top⟩) hf,
665+
exact snorm'_eq_zero_iff (ennreal.to_real_pos h0 h_top) hf,
671666
end
672667

673668
lemma snorm'_add_le {f g : α → E} (hf : ae_measurable f μ) (hg : ae_measurable g μ) (hq1 : 1 ≤ q) :
@@ -904,12 +899,12 @@ begin
904899
snorm_exponent_top],
905900
exact le_rfl, },
906901
rw snorm_eq_snorm' hp0 hp_top,
907-
have hp_pos : 0 < p.to_real, from ennreal.to_real_pos_iff.mpr ⟨hp0_lt, hp_top,
902+
have hp_pos : 0 < p.to_real, from ennreal.to_real_pos hp0_lt.ne' hp_top,
908903
refine (snorm'_le_snorm_ess_sup_mul_rpow_measure_univ hp_pos).trans (le_of_eq _),
909904
congr,
910905
exact one_div _, },
911906
have hp_lt_top : p < ∞, from hpq.trans_lt (lt_top_iff_ne_top.mpr hq_top),
912-
have hp_pos : 0 < p.to_real, from ennreal.to_real_pos_iff.mpr ⟨hp0_lt, hp_lt_top.ne,
907+
have hp_pos : 0 < p.to_real, from ennreal.to_real_pos hp0_lt.ne' hp_lt_top.ne,
913908
rw [snorm_eq_snorm' hp0_lt.ne.symm hp_lt_top.ne, snorm_eq_snorm' hq0_lt.ne.symm hq_top],
914909
have hpq_real : p.to_real ≤ q.to_real, by rwa ennreal.to_real_le_to_real hp_lt_top.ne hq_top,
915910
exact snorm'_le_snorm'_mul_rpow_measure_univ hp_pos hpq_real hf,
@@ -965,8 +960,7 @@ begin
965960
by rwa [hp_top, top_le_iff] at hpq,
966961
rw [hp_top],
967962
rwa hq_top at hfq_lt_top, },
968-
have hp_pos : 0 < p.to_real,
969-
from ennreal.to_real_pos_iff.mpr ⟨lt_of_le_of_ne (zero_le _) hp0.symm, hp_top⟩,
963+
have hp_pos : 0 < p.to_real, from ennreal.to_real_pos hp0 hp_top,
970964
by_cases hq_top : q = ∞,
971965
{ rw snorm_eq_snorm' hp0 hp_top,
972966
rw [hq_top, snorm_exponent_top] at hfq_lt_top,
@@ -1057,8 +1051,7 @@ begin
10571051
{ simp [h_top, snorm_ess_sup_const_smul], },
10581052
repeat { rw snorm_eq_snorm' h0 h_top, },
10591053
rw ←ne.def at h0,
1060-
exact snorm'_const_smul c
1061-
(ennreal.to_real_pos_iff.mpr ⟨lt_of_le_of_ne (zero_le _) h0.symm, h_top⟩),
1054+
exact snorm'_const_smul c (ennreal.to_real_pos h0 h_top),
10621055
end
10631056

10641057
lemma mem_ℒp.const_smul [measurable_space 𝕜] [opens_measurable_space 𝕜] [borel_space E] {f : α → E}
@@ -1537,8 +1530,7 @@ variables {hs}
15371530
lemma snorm_indicator_const {c : G} (hs : measurable_set s) (hp : p ≠ 0) (hp_top : p ≠ ∞) :
15381531
snorm (s.indicator (λ x, c)) p μ = ∥c∥₊ * (μ s) ^ (1 / p.to_real) :=
15391532
begin
1540-
have hp_pos : 0 < p.to_real,
1541-
from ennreal.to_real_pos_iff.mpr ⟨lt_of_le_of_ne (zero_le _) hp.symm, hp_top⟩,
1533+
have hp_pos : 0 < p.to_real, from ennreal.to_real_pos hp hp_top,
15421534
rw snorm_eq_lintegral_rpow_nnnorm hp hp_top,
15431535
simp_rw [nnnorm_indicator_eq_indicator_nnnorm, ennreal.coe_indicator],
15441536
have h_indicator_pow : (λ a : α, s.indicator (λ (x : α), (∥c∥₊ : ℝ≥0∞)) a ^ p.to_real)
@@ -1593,7 +1585,7 @@ begin
15931585
congr,
15941586
simp_rw [nnnorm_indicator_eq_indicator_nnnorm, ennreal.coe_indicator],
15951587
have h_zero : (λ x, x ^ p.to_real) (0 : ℝ≥0∞) = 0,
1596-
by simp [ennreal.to_real_pos_iff.mpr ⟨ne.bot_lt hp_zero, hp_top],
1588+
by simp [ennreal.to_real_pos hp_zero hp_top],
15971589
exact (set.indicator_comp_of_zero h_zero).symm,
15981590
end
15991591

@@ -2076,8 +2068,7 @@ begin
20762068
{ simp_rw [hp_top],
20772069
exact snorm_exponent_top_lim_le_liminf_snorm_exponent_top h_lim, },
20782070
simp_rw snorm_eq_snorm' hp0 hp_top,
2079-
have hp_pos : 0 < p.to_real,
2080-
from ennreal.to_real_pos_iff.mpr ⟨lt_of_le_of_ne (zero_le _) hp0.symm, hp_top⟩,
2071+
have hp_pos : 0 < p.to_real, from ennreal.to_real_pos hp0 hp_top,
20812072
exact snorm'_lim_le_liminf_snorm' hp_pos hf h_lim,
20822073
end
20832074

src/measure_theory/function/simple_func_dense.lean

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ lemma tendsto_approx_on_Lp_snorm [opens_measurable_space E]
227227
begin
228228
by_cases hp_zero : p = 0,
229229
{ simpa only [hp_zero, snorm_exponent_zero] using tendsto_const_nhds },
230-
have hp : 0 < p.to_real := to_real_pos_iff.mpr ⟨bot_lt_iff_ne_bot.mpr hp_zero, hp_ne_top,
230+
have hp : 0 < p.to_real := to_real_pos hp_zero hp_ne_top,
231231
suffices : tendsto (λ n, ∫⁻ x, ∥approx_on f hf s y₀ h₀ n x - f x∥₊ ^ p.to_real ∂μ) at_top (𝓝 0),
232232
{ simp only [snorm_eq_lintegral_rpow_nnnorm hp_zero hp_ne_top],
233233
convert continuous_rpow_const.continuous_at.tendsto.comp this;
@@ -379,13 +379,13 @@ protected lemma snorm'_eq {p : ℝ} (f : α →ₛ F) (μ : measure α) :
379379
have h_map : (λ a, (nnnorm (f a) : ℝ≥0∞) ^ p) = f.map (λ a : F, (nnnorm a : ℝ≥0∞) ^ p), by simp,
380380
by rw [snorm', h_map, lintegral_eq_lintegral, map_lintegral]
381381

382-
lemma measure_preimage_lt_top_of_mem_ℒp (hp_pos : 0 < p) (hp_ne_top : p ≠ ∞) (f : α →ₛ E)
382+
lemma measure_preimage_lt_top_of_mem_ℒp (hp_pos : p ≠ 0) (hp_ne_top : p ≠ ∞) (f : α →ₛ E)
383383
(hf : mem_ℒp f p μ) (y : E) (hy_ne : y ≠ 0) :
384384
μ (f ⁻¹' {y}) < ∞ :=
385385
begin
386-
have hp_pos_real : 0 < p.to_real, from ennreal.to_real_pos_iff.mpr ⟨hp_pos, hp_ne_top,
386+
have hp_pos_real : 0 < p.to_real, from ennreal.to_real_pos hp_pos hp_ne_top,
387387
have hf_snorm := mem_ℒp.snorm_lt_top hf,
388-
rw [snorm_eq_snorm' hp_pos.ne.symm hp_ne_top, f.snorm'_eq,
388+
rw [snorm_eq_snorm' hp_pos hp_ne_top, f.snorm'_eq,
389389
← @ennreal.lt_rpow_one_div_iff _ _ (1 / p.to_real) (by simp [hp_pos_real]),
390390
@ennreal.top_rpow_of_pos (1 / (1 / p.to_real)) (by simp [hp_pos_real]),
391391
ennreal.sum_lt_top_iff] at hf_snorm,
@@ -419,24 +419,24 @@ begin
419419
rw [snorm_eq_snorm' hp0 hp_top, f.snorm'_eq],
420420
refine ennreal.rpow_lt_top_of_nonneg (by simp) (ennreal.sum_lt_top_iff.mpr (λ y hy, _)).ne,
421421
by_cases hy0 : y = 0,
422-
{ simp [hy0, ennreal.to_real_pos_iff.mpr ⟨lt_of_le_of_ne (zero_le _) (ne.symm hp0), hp_top], },
422+
{ simp [hy0, ennreal.to_real_pos hp0 hp_top], },
423423
{ refine ennreal.mul_lt_top _ (hf y hy0).ne,
424424
exact (ennreal.rpow_lt_top_of_nonneg ennreal.to_real_nonneg ennreal.coe_ne_top).ne },
425425
end
426426

427-
lemma mem_ℒp_iff {f : α →ₛ E} (hp_pos : 0 < p) (hp_ne_top : p ≠ ∞) :
427+
lemma mem_ℒp_iff {f : α →ₛ E} (hp_pos : p ≠ 0) (hp_ne_top : p ≠ ∞) :
428428
mem_ℒp f p μ ↔ ∀ y ≠ 0, μ (f ⁻¹' {y}) < ∞ :=
429429
⟨λ h, measure_preimage_lt_top_of_mem_ℒp hp_pos hp_ne_top f h,
430430
λ h, mem_ℒp_of_finite_measure_preimage p h⟩
431431

432432
lemma integrable_iff {f : α →ₛ E} : integrable f μ ↔ ∀ y ≠ 0, μ (f ⁻¹' {y}) < ∞ :=
433-
mem_ℒp_one_iff_integrable.symm.trans $ mem_ℒp_iff ennreal.zero_lt_one ennreal.coe_ne_top
433+
mem_ℒp_one_iff_integrable.symm.trans $ mem_ℒp_iff ennreal.zero_lt_one.ne' ennreal.coe_ne_top
434434

435-
lemma mem_ℒp_iff_integrable {f : α →ₛ E} (hp_pos : 0 < p) (hp_ne_top : p ≠ ∞) :
435+
lemma mem_ℒp_iff_integrable {f : α →ₛ E} (hp_pos : p ≠ 0) (hp_ne_top : p ≠ ∞) :
436436
mem_ℒp f p μ ↔ integrable f μ :=
437437
(mem_ℒp_iff hp_pos hp_ne_top).trans integrable_iff.symm
438438

439-
lemma mem_ℒp_iff_fin_meas_supp {f : α →ₛ E} (hp_pos : 0 < p) (hp_ne_top : p ≠ ∞) :
439+
lemma mem_ℒp_iff_fin_meas_supp {f : α →ₛ E} (hp_pos : p ≠ 0) (hp_ne_top : p ≠ ∞) :
440440
mem_ℒp f p μ ↔ f.fin_meas_supp μ :=
441441
(mem_ℒp_iff hp_pos hp_ne_top).trans fin_meas_supp_iff.symm
442442

@@ -475,13 +475,13 @@ end
475475
lemma measure_support_lt_top_of_mem_ℒp (f : α →ₛ E) (hf : mem_ℒp f p μ) (hp_ne_zero : p ≠ 0)
476476
(hp_ne_top : p ≠ ∞) :
477477
μ (support f) < ∞ :=
478-
f.measure_support_lt_top ((mem_ℒp_iff (pos_iff_ne_zero.mpr hp_ne_zero) hp_ne_top).mp hf)
478+
f.measure_support_lt_top ((mem_ℒp_iff hp_ne_zero hp_ne_top).mp hf)
479479

480480
lemma measure_support_lt_top_of_integrable (f : α →ₛ E) (hf : integrable f μ) :
481481
μ (support f) < ∞ :=
482482
f.measure_support_lt_top (integrable_iff.mp hf)
483483

484-
lemma measure_lt_top_of_mem_ℒp_indicator (hp_pos : 0 < p) (hp_ne_top : p ≠ ∞) {c : E} (hc : c ≠ 0)
484+
lemma measure_lt_top_of_mem_ℒp_indicator (hp_pos : p ≠ 0) (hp_ne_top : p ≠ ∞) {c : E} (hc : c ≠ 0)
485485
{s : set α} (hs : measurable_set s)
486486
(hcs : mem_ℒp ((const α c).piecewise s hs (const α 0)) p μ) :
487487
μ s < ⊤ :=
@@ -726,7 +726,7 @@ Lp.simple_func.to_simple_func_to_Lp _ _
726726
that the property holds for (multiples of) characteristic functions of finite-measure measurable
727727
sets and is closed under addition (of functions with disjoint support). -/
728728
@[elab_as_eliminator]
729-
protected lemma induction (hp_pos : 0 < p) (hp_ne_top : p ≠ ∞) {P : Lp.simple_func E p μ → Prop}
729+
protected lemma induction (hp_pos : p ≠ 0) (hp_ne_top : p ≠ ∞) {P : Lp.simple_func E p μ → Prop}
730730
(h_ind : ∀ (c : E) {s : set α} (hs : measurable_set s) (hμs : μ s < ∞),
731731
P (Lp.simple_func.indicator_const p hs hμs.ne c))
732732
(h_add : ∀ ⦃f g : α →ₛ E⦄, ∀ hf : mem_ℒp f p μ, ∀ hg : mem_ℒp g p μ,
@@ -825,7 +825,7 @@ lemma Lp.induction [_i : fact (1 ≤ p)] (hp_ne_top : p ≠ ∞) (P : Lp E p μ
825825
∀ f : Lp E p μ, P f :=
826826
begin
827827
refine λ f, (Lp.simple_func.dense_range hp_ne_top).induction_on f h_closed _,
828-
refine Lp.simple_func.induction (lt_of_lt_of_le ennreal.zero_lt_one _i.elim) hp_ne_top _ _,
828+
refine Lp.simple_func.induction (lt_of_lt_of_le ennreal.zero_lt_one _i.elim).ne' hp_ne_top _ _,
829829
{ exact λ c s, h_ind c },
830830
{ exact λ f g hf hg, h_add hf hg },
831831
end
@@ -856,7 +856,7 @@ begin
856856
{ intros c s hs h,
857857
by_cases hc : c = 0,
858858
{ subst hc, convert h_ind 0 measurable_set.empty (by simp) using 1, ext, simp [const] },
859-
have hp_pos : 0 < p := lt_of_lt_of_le ennreal.zero_lt_one _i.elim,
859+
have hp_pos : p ≠ 0 := (lt_of_lt_of_le ennreal.zero_lt_one _i.elim).ne',
860860
exact h_ind c hs (simple_func.measure_lt_top_of_mem_ℒp_indicator hp_pos hp_ne_top hc hs h) },
861861
{ intros f g hfg hf hg int_fg,
862862
rw [simple_func.coe_add, mem_ℒp_add_of_disjoint hfg f.measurable g.measurable] at int_fg,

src/measure_theory/integral/set_to_l1.lean

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1327,10 +1327,7 @@ begin
13271327
rw metric.continuous_iff,
13281328
intros f ε hε_pos,
13291329
use (ε / 2) / c'.to_real,
1330-
refine ⟨_, _⟩,
1331-
{ refine div_pos (half_pos hε_pos) _,
1332-
rw to_real_pos_iff,
1333-
exact ⟨lt_of_le_of_ne (zero_le _) (ne.symm hc'0), hc'⟩, },
1330+
refine ⟨div_pos (half_pos hε_pos) (to_real_pos hc'0 hc'), _⟩,
13341331
intros g hfg,
13351332
rw Lp.dist_def at hfg ⊢,
13361333
let h_int := λ f' : α →₁[μ] G, (L1.integrable_coe_fn f').of_measure_le_smul c' hc' hμ'_le,

0 commit comments

Comments
 (0)