Skip to content

Commit 759a343

Browse files
committed
Merge branch 'nightly-testing' of github.com:leanprover-community/mathlib4 into nightly-testing
2 parents 96cfde0 + 79a581c commit 759a343

File tree

155 files changed

+1040
-653
lines changed

Some content is hidden

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

155 files changed

+1040
-653
lines changed

Mathlib.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4703,6 +4703,7 @@ import Mathlib.RepresentationTheory.Invariants
47034703
import Mathlib.RepresentationTheory.Maschke
47044704
import Mathlib.RepresentationTheory.Rep
47054705
import Mathlib.RepresentationTheory.Submodule
4706+
import Mathlib.RepresentationTheory.Tannaka
47064707
import Mathlib.RingTheory.AdicCompletion.Algebra
47074708
import Mathlib.RingTheory.AdicCompletion.AsTensorProduct
47084709
import Mathlib.RingTheory.AdicCompletion.Basic

Mathlib/Algebra/Group/Action/Pointwise/Set/Basic.lean

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,14 @@ namespace Set
3434

3535
/-! ### Translation/scaling of sets -/
3636

37-
@[to_additive]
37+
@[to_additive vadd_set_prod]
3838
lemma smul_set_prod {M α : Type*} [SMul M α] [SMul M β] (c : M) (s : Set α) (t : Set β) :
3939
c • (s ×ˢ t) = (c • s) ×ˢ (c • t) :=
4040
prodMap_image_prod (c • ·) (c • ·) s t
4141

42+
@[deprecated (since := "2025-03-11")]
43+
alias vadd_set_sum := vadd_set_prod
44+
4245
@[to_additive]
4346
lemma smul_set_pi {G ι : Type*} {α : ι → Type*} [Group G] [∀ i, MulAction G (α i)]
4447
(c : G) (I : Set ι) (s : ∀ i, Set (α i)) : c • I.pi s = I.pi fun i ↦ c • s i :=

Mathlib/Algebra/Group/Graph.lean

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,12 @@ attribute [to_additive existing] coe_mgraph
5353
@[to_additive (attr := simp)]
5454
lemma mem_mgraph {f : G →* H} {x : G × H} : x ∈ f.mgraph ↔ f x.1 = x.2 := .rfl
5555

56-
@[to_additive]
56+
@[to_additive mgraph_eq_mrange_prod]
5757
lemma mgraph_eq_mrange_prod (f : G →* H) : f.mgraph = mrange ((id _).prod f) := by aesop
5858

59+
@[deprecated (since := "2025-03-11")]
60+
alias _root_.AddMonoidHom.mgraph_eq_mrange_sum := AddMonoidHom.mgraph_eq_mrange_prod
61+
5962
/-- **Vertical line test** for monoid homomorphisms.
6063
6164
Let `f : G → H × I` be a homomorphism to a product of monoids. Assume that `f` is surjective on the
@@ -165,9 +168,12 @@ attribute [to_additive existing] coe_graph graph_toSubmonoid
165168
@[to_additive]
166169
lemma mem_graph {f : G →* H} {x : G × H} : x ∈ f.graph ↔ f x.1 = x.2 := .rfl
167170

168-
@[to_additive]
171+
@[to_additive graph_eq_range_prod]
169172
lemma graph_eq_range_prod (f : G →* H) : f.graph = range ((id _).prod f) := by aesop
170173

174+
@[deprecated (since := "2025-03-11")]
175+
alias AddMonoidHom.graph_eq_range_sum := graph_eq_range_prod
176+
171177
/-- **Vertical line test** for group homomorphisms.
172178
173179
Let `f : G → H × I` be a homomorphism to a product of groups. Assume that `f` is surjective on the

Mathlib/Algebra/Group/Subgroup/Basic.lean

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,13 @@ theorem top_prod (H : Subgroup N) : (⊤ : Subgroup G).prod H = H.comap (MonoidH
121121
theorem top_prod_top : (⊤ : Subgroup G).prod (⊤ : Subgroup N) = ⊤ :=
122122
(top_prod _).trans <| comap_top _
123123

124-
@[to_additive]
124+
@[to_additive (attr := simp) bot_prod_bot]
125125
theorem bot_prod_bot : (⊥ : Subgroup G).prod (⊥ : Subgroup N) = ⊥ :=
126126
SetLike.coe_injective <| by simp [coe_prod]
127127

128+
@[deprecated (since := "2025-03-11")]
129+
alias _root_.AddSubgroup.bot_sum_bot := AddSubgroup.bot_prod_bot
130+
128131
@[to_additive le_prod_iff]
129132
theorem le_prod_iff {H : Subgroup G} {K : Subgroup N} {J : Subgroup (G × N)} :
130133
J ≤ H.prod K ↔ map (MonoidHom.fst G N) J ≤ H ∧ map (MonoidHom.snd G N) J ≤ K := by
@@ -555,17 +558,23 @@ section Ker
555558

556559
variable {M : Type*} [MulOneClass M]
557560

558-
@[to_additive]
561+
@[to_additive prodMap_comap_prod]
559562
theorem prodMap_comap_prod {G' : Type*} {N' : Type*} [Group G'] [Group N'] (f : G →* N)
560563
(g : G' →* N') (S : Subgroup N) (S' : Subgroup N') :
561564
(S.prod S').comap (prodMap f g) = (S.comap f).prod (S'.comap g) :=
562565
SetLike.coe_injective <| Set.preimage_prod_map_prod f g _ _
563566

564-
@[to_additive]
567+
@[deprecated (since := "2025-03-11")]
568+
alias _root_.AddMonoidHom.sumMap_comap_sum := AddMonoidHom.prodMap_comap_prod
569+
570+
@[to_additive ker_prodMap]
565571
theorem ker_prodMap {G' : Type*} {N' : Type*} [Group G'] [Group N'] (f : G →* N) (g : G' →* N') :
566572
(prodMap f g).ker = f.ker.prod g.ker := by
567573
rw [← comap_bot, ← comap_bot, ← comap_bot, ← prodMap_comap_prod, bot_prod_bot]
568574

575+
@[deprecated (since := "2025-03-11")]
576+
alias _root_.AddMonoidHom.ker_sumMap := AddMonoidHom.ker_prodMap
577+
569578
@[to_additive (attr := simp)]
570579
lemma ker_fst : ker (fst G G') = .prod ⊥ ⊤ := SetLike.ext fun _ => (iff_of_eq (and_true _)).symm
571580

Mathlib/Algebra/Group/Subgroup/Ker.lean

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,11 +298,14 @@ theorem _root_.Subgroup.ker_subtype (H : Subgroup G) : H.subtype.ker = ⊥ :=
298298
theorem _root_.Subgroup.ker_inclusion {H K : Subgroup G} (h : H ≤ K) : (inclusion h).ker = ⊥ :=
299299
(inclusion h).ker_eq_bot_iff.mpr (Set.inclusion_injective h)
300300

301-
@[to_additive]
301+
@[to_additive ker_prod]
302302
theorem ker_prod {M N : Type*} [MulOneClass M] [MulOneClass N] (f : G →* M) (g : G →* N) :
303303
(f.prod g).ker = f.ker ⊓ g.ker :=
304304
SetLike.ext fun _ => Prod.mk_eq_one
305305

306+
@[deprecated (since := "2025-03-11")]
307+
alias _root_.AddMonoidHom.ker_sum := AddMonoidHom.ker_prod
308+
306309
@[to_additive]
307310
theorem range_le_ker_iff (f : G →* G') (g : G' →* G'') : f.range ≤ g.ker ↔ g.comp f = 1 :=
308311
fun h => ext fun x => h ⟨x, rfl⟩, by rintro h _ ⟨y, rfl⟩; exact DFunLike.congr_fun h y⟩

Mathlib/Algebra/Group/Subgroup/Map.lean

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,11 @@ defined by sending subgroups to their inverse images.
376376
377377
See also `MulEquiv.mapSubgroup` which maps subgroups to their forward images.
378378
-/
379-
@[simps]
379+
@[to_additive (attr := simps)
380+
"An isomorphism of groups gives an order isomorphism between the lattices of subgroups,
381+
defined by sending subgroups to their inverse images.
382+
383+
See also `AddEquiv.mapAddSubgroup` which maps subgroups to their forward images."]
380384
def comapSubgroup (f : G ≃* H) : Subgroup H ≃o Subgroup G where
381385
toFun := Subgroup.comap f
382386
invFun := Subgroup.comap f.symm
@@ -386,13 +390,23 @@ def comapSubgroup (f : G ≃* H) : Subgroup H ≃o Subgroup G where
386390
fun h => by simpa [Subgroup.comap_comap] using
387391
Subgroup.comap_mono (f := (f.symm : H →* G)) h, Subgroup.comap_mono⟩
388392

393+
@[to_additive (attr := simp, norm_cast)]
394+
lemma coe_comapSubgroup (e : G ≃* H) : comapSubgroup e = Subgroup.comap e.toMonoidHom := rfl
395+
396+
@[to_additive (attr := simp)]
397+
lemma symm_comapSubgroup (e : G ≃* H) : (comapSubgroup e).symm = comapSubgroup e.symm := rfl
398+
389399
/--
390400
An isomorphism of groups gives an order isomorphism between the lattices of subgroups,
391401
defined by sending subgroups to their forward images.
392402
393403
See also `MulEquiv.comapSubgroup` which maps subgroups to their inverse images.
394404
-/
395-
@[simps]
405+
@[to_additive (attr := simps)
406+
"An isomorphism of groups gives an order isomorphism between the lattices of subgroups,
407+
defined by sending subgroups to their forward images.
408+
409+
See also `AddEquiv.comapAddSubgroup` which maps subgroups to their inverse images."]
396410
def mapSubgroup {H : Type*} [Group H] (f : G ≃* H) : Subgroup G ≃o Subgroup H where
397411
toFun := Subgroup.map f
398412
invFun := Subgroup.map f.symm
@@ -402,6 +416,12 @@ def mapSubgroup {H : Type*} [Group H] (f : G ≃* H) : Subgroup G ≃o Subgroup
402416
fun h => by simpa [Subgroup.map_map] using
403417
Subgroup.map_mono (f := (f.symm : H →* G)) h, Subgroup.map_mono⟩
404418

419+
@[to_additive (attr := simp, norm_cast)]
420+
lemma coe_mapSubgroup (e : G ≃* H) : mapSubgroup e = Subgroup.map e.toMonoidHom := rfl
421+
422+
@[to_additive (attr := simp)]
423+
lemma symm_mapSubgroup (e : G ≃* H) : (mapSubgroup e).symm = mapSubgroup e.symm := rfl
424+
405425
end MulEquiv
406426

407427
namespace Subgroup
@@ -410,6 +430,10 @@ open MonoidHom
410430

411431
variable {N : Type*} [Group N] (f : G →* N)
412432

433+
@[to_additive (attr := simp, norm_cast)]
434+
lemma comap_toSubmonoid (e : G ≃* N) (s : Subgroup N) :
435+
(s.comap e).toSubmonoid = s.toSubmonoid.comap e.toMonoidHom := rfl
436+
413437
@[to_additive]
414438
theorem map_comap_le (H : Subgroup N) : map f (comap f H) ≤ H :=
415439
(gc_map_comap f).l_u_le _

Mathlib/Algebra/Group/UniqueProds/Basic.lean

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,8 @@ open UniqueMul in
451451
exact ⟨a0, ha0.1, b0, hb0.1, of_image_filter (Pi.evalMulHom G i) ha0.2 hb0.2 hi hu⟩
452452

453453
open ULift in
454-
@[to_additive] instance [UniqueProds G] [UniqueProds H] : UniqueProds (G × H) := by
454+
@[to_additive] instance _root_.Prod.instUniqueProds [UniqueProds G] [UniqueProds H] :
455+
UniqueProds (G × H) := by
455456
have : ∀ b, UniqueProds (I G H b) := Bool.rec ?_ ?_
456457
· exact of_injective_mulHom (downMulHom H) down_injective ‹_›
457458
· refine of_injective_mulHom (Prod.upMulHom G H) (fun x y he => Prod.ext ?_ ?_)
@@ -541,7 +542,8 @@ instance instForall {ι} (G : ι → Type*) [∀ i, Mul (G i)] [∀ i, TwoUnique
541542
· exact ihA _ ((A.filter_subset _).ssubset_of_ne hA)
542543

543544
open ULift in
544-
@[to_additive] instance [TwoUniqueProds G] [TwoUniqueProds H] : TwoUniqueProds (G × H) := by
545+
@[to_additive]instance _root_.Prod.instTwoUniqueProds [TwoUniqueProds G] [TwoUniqueProds H] :
546+
TwoUniqueProds (G × H) := by
545547
have : ∀ b, TwoUniqueProds (I G H b) := Bool.rec ?_ ?_
546548
· exact of_injective_mulHom (downMulHom H) down_injective ‹_›
547549
· refine of_injective_mulHom (Prod.upMulHom G H) (fun x y he ↦ Prod.ext ?_ ?_)

Mathlib/Analysis/Analytic/Basic.lean

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1103,7 +1103,6 @@ theorem HasFPowerSeriesWithinOnBall.isBigO_image_sub_image_sub_deriv_principal
11031103
have hAB : ∀ n, ‖A (n + 2)‖ ≤ B n := fun n =>
11041104
calc
11051105
‖A (n + 2)‖ ≤ ‖p (n + 2)‖ * ↑(n + 2) * ‖y - (x, x)‖ ^ (n + 1) * ‖y.1 - y.2‖ := by
1106-
-- Porting note: `pi_norm_const` was `pi_norm_const (_ : E)`
11071106
simpa only [Fintype.card_fin, pi_norm_const, Prod.norm_def, Pi.sub_def,
11081107
Prod.fst_sub, Prod.snd_sub, sub_sub_sub_cancel_right] using
11091108
(p <| n + 2).norm_image_sub_le (fun _ => y.1 - x) fun _ => y.2 - x
@@ -1124,7 +1123,7 @@ theorem HasFPowerSeriesWithinOnBall.isBigO_image_sub_image_sub_deriv_principal
11241123
simp only [add_mul]
11251124
have : ‖a‖ < 1 := by simp only [Real.norm_eq_abs, abs_of_pos ha.1, ha.2]
11261125
rw [div_eq_mul_inv, div_eq_mul_inv]
1127-
exact (hasSum_coe_mul_geometric_of_norm_lt_one this).add -- Porting note: was `convert`!
1126+
exact (hasSum_coe_mul_geometric_of_norm_lt_one this).add
11281127
((hasSum_geometric_of_norm_lt_one this).mul_left 2)
11291128
exact hA.norm_le_of_bounded hBL hAB
11301129
suffices L =O[𝓟 (EMetric.ball (x, x) r' ∩ ((insert x s) ×ˢ (insert x s)))]

Mathlib/Analysis/Analytic/Composition.lean

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -612,8 +612,6 @@ theorem compChangeOfVariables_sum {α : Type*} [AddCommMonoid α] (m M N : ℕ)
612612
-- 1 - show that the image belongs to `compPartialSumTarget m N N`
613613
· rintro ⟨k, blocks_fun⟩ H
614614
rw [mem_compPartialSumSource_iff] at H
615-
-- Porting note: added
616-
simp only at H
617615
simp only [mem_compPartialSumTarget_iff, Composition.length, Composition.blocks, H.left,
618616
map_ofFn, length_ofFn, true_and, compChangeOfVariables]
619617
intro j
@@ -1079,7 +1077,6 @@ theorem sizeUpTo_sizeUpTo_add (a : Composition n) (b : Composition a.length) {i
10791077
sizeUpTo a (sizeUpTo b i + j) =
10801078
sizeUpTo (a.gather b) i +
10811079
sizeUpTo (sigmaCompositionAux a b ⟨i, (length_gather a b).symm ▸ hi⟩) j := by
1082-
-- Porting note: `induction'` left a spurious `hj` in the context
10831080
induction j with
10841081
| zero =>
10851082
show

Mathlib/Analysis/Analytic/RadiusLiminf.lean

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,8 @@ $\liminf_{n\to\infty} \frac{1}{\sqrt[n]{‖p n‖}}$. The actual statement uses
3232
coercions. -/
3333
theorem radius_eq_liminf :
3434
p.radius = liminf (fun n => (1 / (‖p n‖₊ ^ (1 / (n : ℝ)) : ℝ≥0) : ℝ≥0∞)) atTop := by
35-
-- Porting note: added type ascription to make elaborated statement match Lean 3 version
3635
have :
37-
∀ (r : ℝ≥0) {n : ℕ},
36+
∀ (r : ℝ≥0) {n},
3837
0 < n → ((r : ℝ≥0∞) ≤ 1 / ↑(‖p n‖₊ ^ (1 / (n : ℝ))) ↔ ‖p n‖₊ * r ^ n ≤ 1) := by
3938
intro r n hn
4039
have : 0 < (n : ℝ) := Nat.cast_pos.2 hn

Mathlib/Analysis/Analytic/Uniqueness.lean

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,6 @@ theorem Asymptotics.IsBigO.continuousMultilinearMap_apply_eq_zero {n : ℕ} {p :
4747
clear h hc z_mem
4848
rcases n with - | n
4949
· exact norm_eq_zero.mp (by
50-
-- Porting note: the symmetric difference of the `simpa only` sets:
51-
-- added `zero_add, pow_one`
52-
-- removed `zero_pow, Ne.def, Nat.one_ne_zero, not_false_iff`
5350
simpa only [fin0_apply_norm, norm_eq_zero, norm_zero, zero_add, pow_one,
5451
mul_zero, norm_le_zero_iff] using ht 0 (δε (Metric.mem_ball_self δ_pos)))
5552
· refine Or.elim (Classical.em (y = 0))
@@ -70,9 +67,7 @@ theorem Asymptotics.IsBigO.continuousMultilinearMap_apply_eq_zero {n : ℕ} {p :
7067
simpa only [norm_pow, _root_.norm_norm] using ht (k • y) (δε (mem_ball_zero_iff.mpr h₁))
7168
--simpa only [norm_pow, norm_norm] using ht (k • y) (δε (mem_ball_zero_iff.mpr h₁))
7269
_ = ‖k‖ ^ n.succ * (‖k‖ * (c * ‖y‖ ^ (n.succ + 1))) := by
73-
-- Porting note: added `Nat.succ_eq_add_one` since otherwise `ring` does not conclude.
74-
simp only [norm_smul, mul_pow, Nat.succ_eq_add_one]
75-
-- Porting note: removed `rw [pow_succ]`, since it now becomes superfluous.
70+
simp only [norm_smul, mul_pow]
7671
ring
7772
have h₃ : ‖k‖ * (c * ‖y‖ ^ (n.succ + 1)) < ε :=
7873
inv_mul_cancel_right₀ h₀.ne.symm ε ▸

Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,6 @@ theorem IsEquivalent.smul {α E 𝕜 : Type*} [NormedField 𝕜] [NormedAddCommG
220220
(fun x ↦ a x • u x) ~[l] fun x ↦ b x • v x := by
221221
rcases hab.exists_eq_mul with ⟨φ, hφ, habφ⟩
222222
have : ((fun x ↦ a x • u x) - (fun x ↦ b x • v x)) =ᶠ[l] fun x ↦ b x • (φ x • u x - v x) := by
223-
-- Porting note: `convert` has become too strong, so we need to specify `using 1`.
224223
convert (habφ.comp₂ (· • ·) <| EventuallyEq.refl _ u).sub
225224
(EventuallyEq.refl _ fun x ↦ b x • v x) using 1
226225
ext

Mathlib/Analysis/BoxIntegral/Basic.lean

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -813,7 +813,6 @@ theorem HasIntegral.of_bRiemann_eq_false_of_forall_isLittleO (hl : l.bRiemann =
813813
exact fun J hJ => (Finset.mem_filter.1 hJ).2
814814
/- Now we deal with boxes such that `π.tag J ∉ s`.
815815
In this case the estimate is straightforward. -/
816-
-- Porting note: avoided strange elaboration issues by rewriting using `calc`
817816
calc
818817
dist (∑ J ∈ π.boxes with ¬tag π J ∈ s, vol J (f (tag π J)))
819818
(∑ J ∈ π.boxes with ¬tag π J ∈ s, g J)

Mathlib/Analysis/BoxIntegral/Box/Basic.lean

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@ theorem lower_ne_upper (i) : I.lower i ≠ I.upper i :=
9393
instance : Membership (ι → ℝ) (Box ι) :=
9494
fun I x ↦ ∀ i, x i ∈ Ioc (I.lower i) (I.upper i)⟩
9595

96-
-- Porting note: added
9796
/-- The set of points in this box: this is the product of half-open intervals `(lower i, upper i]`,
9897
where `lower` and `upper` are this box' corners. -/
9998
@[coe]
@@ -238,7 +237,6 @@ instance : SemilatticeSup (Box ι) :=
238237
In this section we define coercion from `WithBot (Box ι)` to `Set (ι → ℝ)` by sending `⊥` to `∅`.
239238
-/
240239

241-
-- Porting note: added
242240
/-- The set underlying this box: `⊥` is mapped to `∅`. -/
243241
@[coe]
244242
def withBotToSet (o : WithBot (Box ι)) : Set (ι → ℝ) := o.elim ∅ (↑)

Mathlib/Analysis/BoxIntegral/Partition/Measure.lean

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,8 @@ namespace Box
105105

106106
variable [Fintype ι]
107107

108-
-- @[simp] -- Porting note: simp normal form is `volume_apply'`
108+
-- This is not a `simp` lemma because the left hand side simplifies already.
109+
-- See `volume_apply'` for the relevant `simp` lemma.
109110
theorem volume_apply (I : Box ι) :
110111
(volume : Measure (ι → ℝ)).toBoxAdditive I = ∏ i, (I.upper i - I.lower i) := by
111112
rw [Measure.toBoxAdditive_apply, coe_eq_pi, Real.volume_pi_Ioc_toReal I.lower_le_upper]

Mathlib/Analysis/BoxIntegral/Partition/Split.lean

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,6 @@ theorem iUnion_split (I : Box ι) (i : ι) (x : ℝ) : (split I i x).iUnion = I
174174
theorem isPartitionSplit (I : Box ι) (i : ι) (x : ℝ) : IsPartition (split I i x) :=
175175
isPartition_iff_iUnion_eq.2 <| iUnion_split I i x
176176

177-
-- Porting note: In the type, changed `Option.elim` to `Option.elim'`
178177
theorem sum_split_boxes {M : Type*} [AddCommMonoid M] (I : Box ι) (i : ι) (x : ℝ) (f : Box ι → M) :
179178
(∑ J ∈ (split I i x).boxes, f J) =
180179
(I.splitLower i x).elim' 0 f + (I.splitUpper i x).elim' 0 f := by

Mathlib/Analysis/BoxIntegral/Partition/Tagged.lean

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,6 @@ theorem isHenstock_single_iff (hJ : J ≤ I) (h : x ∈ Box.Icc I) :
274274
IsHenstock (single I J hJ x h) ↔ x ∈ Box.Icc J :=
275275
forall_mem_single (fun x J => x ∈ Box.Icc J) hJ h
276276

277-
--@[simp] -- Porting note: Commented out, because `simp only [isHenstock_single_iff]` simplifies it
278277
theorem isHenstock_single (h : x ∈ Box.Icc I) : IsHenstock (single I I le_rfl x h) :=
279278
(isHenstock_single_iff (le_refl I) h).2 h
280279

Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -596,8 +596,9 @@ instance instNormedSpace : NormedSpace ℂ (CStarMatrix m n A) :=
596596

597597
noncomputable instance instNonUnitalNormedRing :
598598
NonUnitalNormedRing (CStarMatrix n n A) where
599-
dist_eq _ _ := rfl
600-
norm_mul _ _ := by simpa only [norm_def', map_mul] using norm_mul_le _ _
599+
__ : NormedAddCommGroup (CStarMatrix n n A) := inferInstance
600+
__ : NonUnitalRing (CStarMatrix n n A) := inferInstance
601+
norm_mul_le _ _ := by simpa only [norm_def', map_mul] using norm_mul_le _ _
601602

602603
open ContinuousLinearMap CStarModule in
603604
/-- Matrices with entries in a C⋆-algebra form a C⋆-algebra. -/
@@ -649,7 +650,7 @@ variable {n : Type*} [Fintype n] [DecidableEq n]
649650

650651
noncomputable instance instNormedRing : NormedRing (CStarMatrix n n A) where
651652
dist_eq _ _ := rfl
652-
norm_mul := norm_mul_le
653+
norm_mul_le := norm_mul_le
653654

654655
noncomputable instance instNormedAlgebra : NormedAlgebra ℂ (CStarMatrix n n A) where
655656
norm_smul_le r M := by simpa only [norm_def, map_smul] using (toCLM M).opNorm_smul_le r

Mathlib/Analysis/CStarAlgebra/Matrix.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ scoped[Matrix.L2OpNorm] attribute [instance] Matrix.instL2OpNormedSpace
225225
identification with (continuous) linear endmorphisms of `EuclideanSpace 𝕜 n`. -/
226226
def instL2OpNormedRing : NormedRing (Matrix n n 𝕜) where
227227
dist_eq := l2OpNormedRingAux.dist_eq
228-
norm_mul := l2OpNormedRingAux.norm_mul
228+
norm_mul_le := l2OpNormedRingAux.norm_mul_le
229229

230230
scoped[Matrix.L2OpNorm] attribute [instance] Matrix.instL2OpNormedRing
231231

Mathlib/Analysis/CStarAlgebra/Multiplier.lean

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ scoped[MultiplierAlgebra] notation "𝓜(" 𝕜 ", " A ")" => DoubleCentralizer
7373

7474
open MultiplierAlgebra
7575

76-
-- Porting note: `ext` was generating the wrong extensionality lemma; it deconstructed the `×`.
7776
@[ext]
7877
lemma DoubleCentralizer.ext (𝕜 : Type u) (A : Type v) [NontriviallyNormedField 𝕜]
7978
[NonUnitalNormedRing A] [NormedSpace 𝕜 A] [SMulCommClass 𝕜 A A] [IsScalarTower 𝕜 A A]
@@ -430,7 +429,6 @@ maps `Lₐ Rₐ : A →L[𝕜] A` given by left- and right-multiplication by `a`
430429
Warning: if `A = 𝕜`, then this is a coercion which is not definitionally equal to the
431430
`algebraMap 𝕜 𝓜(𝕜, 𝕜)` coercion, but these are propositionally equal. See
432431
`DoubleCentralizer.coe_eq_algebraMap` below. -/
433-
-- Porting note: added `noncomputable`; IR check does not recognise `ContinuousLinearMap.mul`
434432
@[coe]
435433
protected noncomputable def coe (a : A) : 𝓜(𝕜, A) :=
436434
{ fst := ContinuousLinearMap.mul 𝕜 A a

Mathlib/Analysis/CStarAlgebra/lpSpace.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ instance [∀ i, NonUnitalCommCStarAlgebra (A i)] : NonUnitalCommCStarAlgebra (l
2727
-- aside from `∀ i, NormOneClass (A i)`, this holds automatically for C⋆-algebras though.
2828
instance [∀ i, Nontrivial (A i)] [∀ i, CStarAlgebra (A i)] : NormedRing (lp A ∞) where
2929
dist_eq := dist_eq_norm
30-
norm_mul := norm_mul_le
30+
norm_mul_le := norm_mul_le
3131

3232
instance [∀ i, Nontrivial (A i)] [∀ i, CommCStarAlgebra (A i)] : CommCStarAlgebra (lp A ∞) where
3333
mul_comm := mul_comm

Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -142,10 +142,8 @@ theorem IsOpen.exists_smooth_support_eq {s : Set E} (hs : IsOpen s) :
142142
refine le_trans ?_ (le_max_left _ _)
143143
apply Finset.le_max'
144144
apply Finset.mem_image_of_mem
145-
-- Porting note: was
146-
-- simp only [Finset.mem_range]
147-
-- linarith
148-
simpa only [Finset.mem_range, Nat.lt_add_one_iff]
145+
simp only [Finset.mem_range]
146+
omega
149147
refine ⟨M⁻¹ * δ n, by positivity, fun i hi x => ?_⟩
150148
calc
151149
‖iteratedFDeriv ℝ i ((M⁻¹ * δ n) • g n) x‖ = ‖(M⁻¹ * δ n) • iteratedFDeriv ℝ i (g n) x‖ := by

Mathlib/Analysis/Calculus/BumpFunction/InnerProduct.lean

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ open scoped Topology
2323

2424
variable (E : Type*) [NormedAddCommGroup E] [InnerProductSpace ℝ E]
2525

26-
-- Porting note: this definition was hidden inside the next instance.
2726
/-- A base bump function in an inner product space. This construction works in any space with a
2827
norm smooth away from zero but we do not have a typeclass for this. -/
2928
noncomputable def ContDiffBumpBase.ofInnerProductSpace : ContDiffBumpBase E where

Mathlib/Analysis/Calculus/ContDiff/Basic.lean

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -952,8 +952,6 @@ theorem ContDiffWithinAt.clm_apply {f : E → F →L[𝕜] G} {g : E → F}
952952
ContDiffWithinAt 𝕜 n (fun x => (f x) (g x)) s x :=
953953
isBoundedBilinearMap_apply.contDiff.comp₂_contDiffWithinAt hf hg
954954

955-
-- Porting note: In Lean 3 we had to give implicit arguments in proofs like the following,
956-
-- to speed up elaboration. In Lean 4 this isn't necessary anymore.
957955
theorem ContDiff.smulRight {f : E → F →L[𝕜] 𝕜} {g : E → G} (hf : ContDiff 𝕜 n f)
958956
(hg : ContDiff 𝕜 n g) : ContDiff 𝕜 n fun x => (f x).smulRight (g x) :=
959957
isBoundedBilinearMap_smulRight.contDiff.comp₂ (g := fun p => p.1.smulRight p.2) hf hg

0 commit comments

Comments
 (0)