Skip to content

Commit a9b4227

Browse files
committed
unreviewed
1 parent 36b6d5d commit a9b4227

239 files changed

Lines changed: 1135 additions & 904 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ protected theorem IsOpen.balancedHull [ContinuousConstSMul 𝕜 E] {s : Set E} (
244244
· exact ⟨1, by simp, by simpa [Set.zero_smul_set ⟨0, hzero⟩]⟩
245245
· use r
246246
rw [balancedHull, this]
247-
exact isOpen_biUnion (fun r hr ↦ hs.smul₀ hr.2)
247+
exact isOpen_biUnion (s := {r : 𝕜 | ‖r‖ ≤ 1 ∧ r ≠ 0}) (fun r hr ↦ hs.smul₀ hr.2)
248248

249249
-- We don't have a `NontriviallyNormedDivisionRing`, so we use a `NeBot` assumption instead
250250
variable [NeBot (𝓝[≠] (0 : 𝕜))]

Mathlib/Analysis/LocallyConvex/Separation.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,8 @@ theorem separate_convex_open_set [TopologicalSpace E] [AddCommGroup E] [IsTopolo
6666
(hφ₂ x).trans_lt (gauge_lt_one_of_mem_of_isOpen hs₂ hx)
6767
refine ⟨⟨φ, ?_⟩, hφ₃, hφ₄⟩
6868
refine
69-
φ.continuous_of_nonzero_on_open _ (hs₂.vadd (-x₀)) (Nonempty.vadd_set ⟨0, hs₀⟩)
70-
(vadd_set_subset_iff.mpr fun x hx => ?_)
69+
φ.continuous_of_nonzero_on_open _ (hs₂.vadd (-x₀)) (Nonempty.vadd_set ⟨0, hs₀⟩) ?_
70+
rintro _ ⟨x, hx, rfl⟩
7171
change φ (-x₀ + x) ≠ 0
7272
rw [map_add, map_neg]
7373
specialize hφ₄ x hx

Mathlib/Analysis/Normed/Group/Quotient.lean

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,8 @@ lemma norm_lt_iff : ‖x‖ < r ↔ ∃ m : M, ↑m = x ∧ ‖m‖ < r := by
152152
lemma nhds_one_hasBasis : (𝓝 (1 : M ⧸ S)).HasBasis (fun ε ↦ 0 < ε) fun ε ↦ {x | ‖x‖ < ε} := by
153153
have : ∀ ε : ℝ, mk '' ball (1 : M) ε = {x : M ⧸ S | ‖x‖ < ε} := by
154154
refine fun ε ↦ Set.ext <| forall_mk.2 fun x ↦ ?_
155-
rw [ball_one_eq, mem_ofPred_eq, norm_lt_iff, mem_image]
155+
rw [ball_one_eq]
156+
simp only [mem_image, mem_ofPred_eq, norm_lt_iff]
156157
exact exists_congr fun _ ↦ and_comm
157158
rw [← mk_one, nhds_eq, ← funext this]
158159
exact .map _ Metric.nhds_basis_ball

Mathlib/Analysis/Normed/Lp/lpSpace.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -508,7 +508,7 @@ theorem norm_eq_zero_iff {f : lp E p} : ‖f‖ = 0 ↔ f = 0 := by
508508
rcases p.trichotomy with (rfl | rfl | hp)
509509
· ext i
510510
have : { i : α | ¬f i = 0 } = ∅ := by simpa [lp.norm_eq_card_dsupport f] using! h
511-
have : f i = 0) = False := congr_fun this i
511+
have : ¬¬f i = 0 := Set.eq_empty_iff_forall_notMem.mp this i
512512
tauto
513513
· rcases isEmpty_or_nonempty α with _i | _i
514514
· simp [eq_iff_true_of_subsingleton]

Mathlib/Analysis/Normed/Module/FiniteDimension.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ theorem isOpen_ofPred_linearIndependent {ι : Type*} [Finite ι] :
337337
theorem isOpen_ofPred_nat_le_rank (n : ℕ) :
338338
IsOpen { f : E →L[𝕜] F | ↑n ≤ (f : E →ₗ[𝕜] F).rank } := by
339339
simp only [LinearMap.le_rank_iff_exists_linearIndependent_finset, ofPred_exists, ← exists_prop]
340-
refine isOpen_biUnion fun t _ => ?_
340+
refine isOpen_iUnion fun t => isOpen_iUnion fun _ => ?_
341341
have : Continuous fun f : E →L[𝕜] F => fun x : (t : Set E) => f x :=
342342
continuous_pi fun x => (ContinuousLinearMap.apply 𝕜 F (x : E)).continuous
343343
exact isOpen_ofPred_linearIndependent.preimage this

Mathlib/Analysis/ODE/Transform.lean

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -117,24 +117,29 @@ lemma isIntegralCurveOn_comp_mul_ne_zero {a : ℝ} (ha : a ≠ 0) :
117117
rw [mem_inv_smul_set_iff₀ ha, smul_eq_mul, mul_comm]
118118
rfl
119119
refine ⟨fun hγ ↦ ?_, heq ▸ fun hγ ↦ hγ.comp_mul a⟩
120-
convert! hγ.comp_mul a⁻¹
120+
have hs : {t | t * a⁻¹ ∈ a⁻¹ • s} = s := by
121+
ext t
122+
rw [mem_ofPred_eq, mul_comm _ a⁻¹, ← smul_eq_mul, mem_inv_smul_set_iff₀ ha,
123+
smul_inv_smul₀ ha]
124+
have h2 := hγ.comp_mul a⁻¹
125+
rw [hs] at h2
126+
convert! h2
121127
· ext t
122128
simp only [comp_apply, mul_assoc, inv_mul_eq_div, div_self ha, mul_one]
123129
· ext t
124130
simp only [comp_apply, Pi.smul_apply, mul_assoc, inv_mul_eq_div, div_self ha, mul_one,
125131
smul_smul, one_smul]
126-
· simp only [mul_comm _ a⁻¹, ← smul_eq_mul, mem_inv_smul_set_iff₀ ha, smul_inv_smul₀ ha,
127-
ofPred_mem_eq]
128132

129133
lemma IsIntegralCurveAt.comp_mul_ne_zero (hγ : IsIntegralCurveAt γ v t₀) {a : ℝ} (ha : a ≠ 0) :
130134
IsIntegralCurveAt (γ ∘ (· * a)) (a • v ∘ (· * a)) (t₀ / a) := by
131135
rw [isIntegralCurveAt_iff_exists_pos] at *
132136
obtain ⟨ε, hε, h⟩ := hγ
133137
refine ⟨ε / |a|, by positivity, ?_⟩
134-
convert! h.comp_mul a
135-
ext t
136-
rw [mem_ofPred_eq, Metric.mem_ball, Metric.mem_ball, Real.dist_eq, Real.dist_eq,
137-
lt_div_iff₀ (abs_pos.mpr ha), ← abs_mul, sub_mul, div_mul_cancel₀ _ ha]
138+
have hs : {t | t * a ∈ Metric.ball t₀ ε} = Metric.ball (t₀ / a) (ε / |a|) := by
139+
ext t
140+
rw [mem_ofPred_eq, Metric.mem_ball, Metric.mem_ball, Real.dist_eq, Real.dist_eq,
141+
lt_div_iff₀ (abs_pos.mpr ha), ← abs_mul, sub_mul, div_mul_cancel₀ _ ha]
142+
exact hs ▸ h.comp_mul a
138143

139144
lemma isIntegralCurveAt_comp_mul_ne_zero {a : ℝ} (ha : a ≠ 0) :
140145
IsIntegralCurveAt (γ ∘ (· * a)) (a • v ∘ (· * a)) (t₀ / a) ↔ IsIntegralCurveAt γ v t₀ := by

Mathlib/Analysis/Polynomial/MahlerMeasure.lean

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -137,12 +137,13 @@ theorem mahlerMeasure_mul (p q : ℂ[X]) :
137137
rw [MeasureTheory.ae_iff]
138138
apply Set.Finite.measure_zero _ MeasureTheory.volume
139139
simp only [Classical.not_imp]
140-
apply Set.Finite.of_finite_image (f := circleMap 0 1) _ <|
141-
(injOn_circleMap_of_abs_sub_le one_ne_zero (by simp [le_of_eq, pi_nonneg])).mono (fun _ h ↦ h.1)
142-
apply (p * q).roots.finite_toSet.subset
143-
rintro _ ⟨_, ⟨_, h⟩, _⟩
144-
contrapose h
145-
simp_all [log_mul]
140+
apply Set.Finite.of_finite_image (f := circleMap 0 1)
141+
· apply (p * q).roots.finite_toSet.subset
142+
rintro _ ⟨_, ⟨_, h⟩, _⟩
143+
contrapose h
144+
simp_all [log_mul]
145+
· exact (injOn_circleMap_of_abs_sub_le one_ne_zero (by simp [le_of_eq, pi_nonneg])).mono
146+
fun _ h ↦ h.1
146147

147148
@[simp]
148149
theorem prod_mahlerMeasure_eq_mahlerMeasure_prod (s : Multiset ℂ[X]) :
@@ -284,9 +285,11 @@ theorem mahlerMeasure_le_sum_norm_coeff (p : ℂ[X]) : p.mahlerMeasure ≤ p.sum
284285
apply (Finite.of_sdiff _ <| finite_singleton (2 * π)).measure_zero
285286
simp only [ne_eq, mem_ofPred_eq, Decidable.not_not, inter_sdiff_assoc, Icc_sdiff_right]
286287
rw [ofPred_inter_eq_sep]
287-
apply Finite.of_finite_image (f := circleMap 0 1) ((Multiset.finite_toSet p.roots).subset _)
288-
<| fun _ h _ k l ↦ injOn_circleMap_of_abs_sub_le' one_ne_zero (by linarith) h.1 k.1 l
289-
simp [hp]
288+
apply Finite.of_finite_image (f := circleMap 0 1)
289+
· apply (Multiset.finite_toSet p.roots).subset
290+
simp [hp]
291+
· exact fun _ h _ k l ↦
292+
injOn_circleMap_of_abs_sub_le' one_ne_zero (by linarith) h.1 k.1 l
290293
· intro _ _
291294
gcongr
292295
rw [eval_eq_sum]

Mathlib/Analysis/SpecialFunctions/Complex/Analytic.lean

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,9 @@ lemma AnalyticOnNhd.log (fs : AnalyticOnNhd ℝ f s) (m : ∀ x ∈ s, 0 < f x)
153153
fun z n ↦ (analyticAt_log (m z n)).comp (fs z n)
154154

155155
lemma AnalyticOn.log (fs : AnalyticOn ℝ f s) (m : ∀ x ∈ s, 0 < f x) :
156-
AnalyticOn ℝ (fun z ↦ Real.log (f z)) s :=
157-
fun z n ↦ (analyticAt_log (m z n)).analyticWithinAt.comp (fs z n) m
156+
AnalyticOn ℝ (fun z ↦ Real.log (f z)) s := by
157+
have hm : MapsTo f s {y | 0 < y} := m
158+
exact fun z n ↦ (analyticAt_log (m z n)).analyticWithinAt.comp (fs z n) hm
158159

159160
theorem iteratedDeriv_succ_log {n : ℕ} {x : ℂ} (hx : x ∈ slitPlane) :
160161
iteratedDeriv (n + 1) log x = (-1 : ℂ) ^ n * n.factorial * x ^ (-(n : ℤ) - 1) := by

Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -558,15 +558,15 @@ theorem arg_eq_nhds_of_re_neg_of_im_pos (hx_re : x.re < 0) (hx_im : 0 < x.im) :
558558
arg =ᶠ[𝓝 x] fun x => Real.arcsin ((-x).im / ‖x‖) + π := by
559559
suffices h_forall_nhds : ∀ᶠ y : ℂ in 𝓝 x, y.re < 00 < y.im from
560560
h_forall_nhds.mono fun y hy => arg_of_re_neg_of_im_nonneg hy.1 hy.2.le
561-
refine IsOpen.eventually_mem ?_ (⟨hx_re, hx_im⟩ : x.re < 00 < x.im)
561+
refine IsOpen.eventually_mem (s := {z : ℂ | z.re < 00 < z.im}) ?_ ⟨hx_re, hx_im⟩
562562
exact
563563
IsOpen.and (isOpen_lt continuous_re continuous_zero) (isOpen_lt continuous_zero continuous_im)
564564

565565
theorem arg_eq_nhds_of_re_neg_of_im_neg (hx_re : x.re < 0) (hx_im : x.im < 0) :
566566
arg =ᶠ[𝓝 x] fun x => Real.arcsin ((-x).im / ‖x‖) - π := by
567567
suffices h_forall_nhds : ∀ᶠ y : ℂ in 𝓝 x, y.re < 0 ∧ y.im < 0 from
568568
h_forall_nhds.mono fun y hy => arg_of_re_neg_of_im_neg hy.1 hy.2
569-
refine IsOpen.eventually_mem ?_ (⟨hx_re, hx_im⟩ : x.re < 0x.im < 0)
569+
refine IsOpen.eventually_mem (s := {z : ℂ | z.re < 0z.im < 0}) ?_ ⟨hx_re, hx_im⟩
570570
exact
571571
IsOpen.and (isOpen_lt continuous_re continuous_zero) (isOpen_lt continuous_im continuous_zero)
572572

Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -505,9 +505,12 @@ theorem Circle.isQuotientCoveringMap_zpow (n : ℤ) [NeZero n] :
505505
IsUnit.isQuotientMap_zsmul (M := ℝ) (QuotientAddGroup.mk' (AddSubgroup.zmultiples (1 : ℝ)))
506506
isQuotientMap_quotient_mk' n hn
507507
ext; simp [zpowGroupHom, e, homeomorphCircle_apply, toCircle_zsmul]
508-
· convert! finite_torsion_of_isSMulRegular_int (1 : ℝ) n fun _ ↦ by simp [NeZero.ne]
509-
ext
510-
simp [e, homeomorphCircle_apply, ← toCircle_zsmul, ← (injective_toCircle one_ne_zero).eq_iff]
508+
· have key : ⇑e ⁻¹' ((zpowGroupHom (α := Circle) n).ker : Set Circle) =
509+
{x : AddCircle 1 | n • x = 0} := by
510+
ext
511+
simp [e, homeomorphCircle_apply, ← toCircle_zsmul,
512+
← (injective_toCircle one_ne_zero).eq_iff]
513+
exact key ▸ finite_torsion_of_isSMulRegular_int (1 : ℝ) n fun _ ↦ by simp [NeZero.ne]
511514

512515
theorem Circle.isQuotientCoveringMap_npow (n : ℕ) [NeZero n] :
513516
IsQuotientCoveringMap (· ^ n : Circle → _) (powMonoidHom (α := Circle) n).ker :=

0 commit comments

Comments
 (0)