analysis.normed_space.exponential ⟷ Mathlib.Analysis.NormedSpace.Exponential

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -166,7 +166,7 @@ theorem NormedSpace.exp_unop [T2Space 𝔸] (x : 𝔸ᡐᡒᡖ) :
 #print NormedSpace.star_exp /-
 theorem NormedSpace.star_exp [T2Space 𝔸] [StarRing 𝔸] [ContinuousStar 𝔸] (x : 𝔸) :
     star (NormedSpace.exp 𝕂 x) = NormedSpace.exp 𝕂 (star x) := by
-  simp_rw [NormedSpace.exp_eq_tsum, ← star_pow, ← star_inv_nat_cast_smul, ← tsum_star]
+  simp_rw [NormedSpace.exp_eq_tsum, ← star_pow, ← star_inv_natCast_smul, ← tsum_star]
 #align star_exp NormedSpace.star_exp
 -/
 
@@ -213,7 +213,7 @@ variable {𝕂 𝔸 : Type _} [Field 𝕂] [DivisionRing 𝔸] [Algebra 𝕂 
 theorem NormedSpace.expSeries_apply_eq_div (x : 𝔸) (n : β„•) :
     (NormedSpace.expSeries 𝕂 𝔸 n fun _ => x) = x ^ n / n ! := by
   rw [div_eq_mul_inv, ← (Nat.cast_commute n ! (x ^ n)).inv_leftβ‚€.Eq, ← smul_eq_mul,
-    NormedSpace.expSeries_apply_eq, inv_nat_cast_smul_eq _ _ _ _]
+    NormedSpace.expSeries_apply_eq, inv_natCast_smul_eq _ _ _ _]
 #align exp_series_apply_eq_div NormedSpace.expSeries_apply_eq_div
 -/
 
@@ -417,7 +417,7 @@ theorem NormedSpace.map_exp_of_mem_ball {F} [RingHomClass F 𝔸 𝔹] (f : F) (
   rw [NormedSpace.exp_eq_tsum, NormedSpace.exp_eq_tsum]
   refine' ((NormedSpace.expSeries_summable_of_mem_ball' _ hx).HasSum.map f hf).tsum_eq.symm.trans _
   dsimp only [Function.comp]
-  simp_rw [one_div, map_inv_nat_cast_smul f 𝕂 𝕂, map_pow]
+  simp_rw [one_div, map_inv_natCast_smul f 𝕂 𝕂, map_pow]
 #align map_exp_of_mem_ball NormedSpace.map_exp_of_mem_ball
 -/
 
@@ -894,7 +894,7 @@ variable (𝕂 𝕂' 𝔸 : Type _) [Field 𝕂] [Field 𝕂'] [Ring 𝔸] [Alge
 `exp_series` on `𝔸`. -/
 theorem NormedSpace.expSeries_eq_expSeries (n : β„•) (x : 𝔸) :
     (NormedSpace.expSeries 𝕂 𝔸 n fun _ => x) = NormedSpace.expSeries 𝕂' 𝔸 n fun _ => x := by
-  rw [NormedSpace.expSeries_apply_eq, NormedSpace.expSeries_apply_eq, inv_nat_cast_smul_eq 𝕂 𝕂']
+  rw [NormedSpace.expSeries_apply_eq, NormedSpace.expSeries_apply_eq, inv_natCast_smul_eq 𝕂 𝕂']
 #align exp_series_eq_exp_series NormedSpace.expSeries_eq_expSeries
 -/
 
Diff
@@ -67,7 +67,7 @@ We prove most result for an arbitrary field `𝕂`, and then specialize to `𝕂
 -/
 
 
-open Filter IsROrC ContinuousMultilinearMap NormedField Asymptotics
+open Filter RCLike ContinuousMultilinearMap NormedField Asymptotics
 
 open scoped Nat Topology BigOperators ENNReal
 
@@ -499,11 +499,11 @@ theorem NormedSpace.exp_add_of_mem_ball [CharZero 𝕂] {x y : 𝔸}
 
 end AnyFieldCommAlgebra
 
-section IsROrC
+section RCLike
 
 section AnyAlgebra
 
-variable (𝕂 𝔸 𝔹 : Type _) [IsROrC 𝕂] [NormedRing 𝔸] [NormedAlgebra 𝕂 𝔸]
+variable (𝕂 𝔸 𝔹 : Type _) [RCLike 𝕂] [NormedRing 𝔸] [NormedAlgebra 𝕂 𝔸]
 
 variable [NormedRing 𝔹] [NormedAlgebra 𝕂 𝔹]
 
@@ -694,7 +694,7 @@ theorem NormedSpace.exp_nsmul (n : β„•) (x : 𝔸) :
   by
   induction' n with n ih
   Β· rw [zero_smul, pow_zero, NormedSpace.exp_zero]
-  Β· rw [succ_nsmul, pow_succ, NormedSpace.exp_add_of_commute ((Commute.refl x).smul_right n), ih]
+  Β· rw [succ_nsmul', pow_succ', NormedSpace.exp_add_of_commute ((Commute.refl x).smul_right n), ih]
 #align exp_nsmul NormedSpace.exp_nsmul
 -/
 
@@ -791,7 +791,7 @@ end AnyAlgebra
 
 section DivisionAlgebra
 
-variable {𝕂 𝔸 : Type _} [IsROrC 𝕂] [NormedDivisionRing 𝔸] [NormedAlgebra 𝕂 𝔸]
+variable {𝕂 𝔸 : Type _} [RCLike 𝕂] [NormedDivisionRing 𝔸] [NormedAlgebra 𝕂 𝔸]
 
 variable (𝕂)
 
@@ -832,8 +832,8 @@ theorem NormedSpace.exp_zsmul (z : β„€) (x : 𝔸) :
     NormedSpace.exp 𝕂 (z β€’ x) = NormedSpace.exp 𝕂 x ^ z :=
   by
   obtain ⟨n, rfl | rfl⟩ := z.eq_coe_or_neg
-  Β· rw [zpow_coe_nat, coe_nat_zsmul, NormedSpace.exp_nsmul]
-  Β· rw [zpow_neg, zpow_coe_nat, neg_smul, NormedSpace.exp_neg, coe_nat_zsmul, NormedSpace.exp_nsmul]
+  Β· rw [zpow_natCast, natCast_zsmul, NormedSpace.exp_nsmul]
+  Β· rw [zpow_neg, zpow_natCast, neg_smul, NormedSpace.exp_neg, natCast_zsmul, NormedSpace.exp_nsmul]
 #align exp_zsmul NormedSpace.exp_zsmul
 -/
 
@@ -855,7 +855,7 @@ end DivisionAlgebra
 
 section CommAlgebra
 
-variable {𝕂 𝔸 : Type _} [IsROrC 𝕂] [NormedCommRing 𝔸] [NormedAlgebra 𝕂 𝔸] [CompleteSpace 𝔸]
+variable {𝕂 𝔸 : Type _} [RCLike 𝕂] [NormedCommRing 𝔸] [NormedAlgebra 𝕂 𝔸] [CompleteSpace 𝔸]
 
 #print NormedSpace.exp_add /-
 /-- In a commutative Banach-algebra `𝔸` over `𝕂 = ℝ` or `𝕂 = β„‚`,
@@ -880,7 +880,7 @@ theorem NormedSpace.exp_sum {ΞΉ} (s : Finset ΞΉ) (f : ΞΉ β†’ 𝔸) :
 
 end CommAlgebra
 
-end IsROrC
+end RCLike
 
 end Normed
 
Diff
@@ -334,7 +334,7 @@ theorem NormedSpace.analyticAt_exp_of_mem_ball (x : 𝔸)
     AnalyticAt 𝕂 (NormedSpace.exp 𝕂) x :=
   by
   by_cases h : (NormedSpace.expSeries 𝕂 𝔸).radius = 0
-  Β· rw [h] at hx ; exact (ENNReal.not_lt_zero hx).elim
+  Β· rw [h] at hx; exact (ENNReal.not_lt_zero hx).elim
   Β· have h := pos_iff_ne_zero.mpr h
     exact (NormedSpace.hasFPowerSeriesOnBall_exp_of_radius_pos h).analyticAt_of_mem hx
 #align analytic_at_exp_of_mem_ball NormedSpace.analyticAt_exp_of_mem_ball
Diff
@@ -832,8 +832,8 @@ theorem NormedSpace.exp_zsmul (z : β„€) (x : 𝔸) :
     NormedSpace.exp 𝕂 (z β€’ x) = NormedSpace.exp 𝕂 x ^ z :=
   by
   obtain ⟨n, rfl | rfl⟩ := z.eq_coe_or_neg
-  Β· rw [zpow_ofNat, coe_nat_zsmul, NormedSpace.exp_nsmul]
-  Β· rw [zpow_neg, zpow_ofNat, neg_smul, NormedSpace.exp_neg, coe_nat_zsmul, NormedSpace.exp_nsmul]
+  Β· rw [zpow_coe_nat, coe_nat_zsmul, NormedSpace.exp_nsmul]
+  Β· rw [zpow_neg, zpow_coe_nat, neg_smul, NormedSpace.exp_neg, coe_nat_zsmul, NormedSpace.exp_nsmul]
 #align exp_zsmul NormedSpace.exp_zsmul
 -/
 
Diff
@@ -677,7 +677,14 @@ theorem NormedSpace.exp_sum_of_commute {ΞΉ} (s : Finset ΞΉ) (f : ΞΉ β†’ 𝔸)
     (h : (s : Set ΞΉ).Pairwise fun i j => Commute (f i) (f j)) :
     NormedSpace.exp 𝕂 (βˆ‘ i in s, f i) =
       s.noncommProd (fun i => NormedSpace.exp 𝕂 (f i)) fun i hi j hj _ => (h.of_refl hi hj).exp 𝕂 :=
-  by classical
+  by
+  classical
+  induction' s using Finset.induction_on with a s ha ih
+  Β· simp
+  rw [Finset.noncommProd_insert_of_not_mem _ _ _ _ ha, Finset.sum_insert ha,
+    NormedSpace.exp_add_of_commute, ih (h.mono <| Finset.subset_insert _ _)]
+  refine' Commute.sum_right _ _ _ fun i hi => _
+  exact h.of_refl (Finset.mem_insert_self _ _) (Finset.mem_insert_of_mem hi)
 #align exp_sum_of_commute NormedSpace.exp_sum_of_commute
 -/
 
Diff
@@ -677,14 +677,7 @@ theorem NormedSpace.exp_sum_of_commute {ΞΉ} (s : Finset ΞΉ) (f : ΞΉ β†’ 𝔸)
     (h : (s : Set ΞΉ).Pairwise fun i j => Commute (f i) (f j)) :
     NormedSpace.exp 𝕂 (βˆ‘ i in s, f i) =
       s.noncommProd (fun i => NormedSpace.exp 𝕂 (f i)) fun i hi j hj _ => (h.of_refl hi hj).exp 𝕂 :=
-  by
-  classical
-  induction' s using Finset.induction_on with a s ha ih
-  Β· simp
-  rw [Finset.noncommProd_insert_of_not_mem _ _ _ _ ha, Finset.sum_insert ha,
-    NormedSpace.exp_add_of_commute, ih (h.mono <| Finset.subset_insert _ _)]
-  refine' Commute.sum_right _ _ _ fun i hi => _
-  exact h.of_refl (Finset.mem_insert_self _ _) (Finset.mem_insert_of_mem hi)
+  by classical
 #align exp_sum_of_commute NormedSpace.exp_sum_of_commute
 -/
 
Diff
@@ -75,118 +75,129 @@ section TopologicalAlgebra
 
 variable (𝕂 𝔸 : Type _) [Field 𝕂] [Ring 𝔸] [Algebra 𝕂 𝔸] [TopologicalSpace 𝔸] [TopologicalRing 𝔸]
 
-#print expSeries /-
+#print NormedSpace.expSeries /-
 /-- `exp_series 𝕂 𝔸` is the `formal_multilinear_series` whose `n`-th term is the map
 `(xα΅’) : 𝔸ⁿ ↦ (1/n! : 𝕂) β€’ ∏ xα΅’`. Its sum is the exponential map `exp 𝕂 : 𝔸 β†’ 𝔸`. -/
-def expSeries : FormalMultilinearSeries 𝕂 𝔸 𝔸 := fun n =>
+def NormedSpace.expSeries : FormalMultilinearSeries 𝕂 𝔸 𝔸 := fun n =>
   (n !⁻¹ : 𝕂) β€’ ContinuousMultilinearMap.mkPiAlgebraFin 𝕂 n 𝔸
-#align exp_series expSeries
+#align exp_series NormedSpace.expSeries
 -/
 
 variable {𝔸}
 
-#print exp /-
+#print NormedSpace.exp /-
 /-- `exp 𝕂 : 𝔸 β†’ 𝔸` is the exponential map determined by the action of `𝕂` on `𝔸`.
 It is defined as the sum of the `formal_multilinear_series` `exp_series 𝕂 𝔸`.
 
 Note that when `𝔸 = matrix n n 𝕂`, this is the **Matrix Exponential**; see
 [`analysis.normed_space.matrix_exponential`](../matrix_exponential) for lemmas specific to that
 case. -/
-noncomputable def exp (x : 𝔸) : 𝔸 :=
-  (expSeries 𝕂 𝔸).Sum x
-#align exp exp
+noncomputable def NormedSpace.exp (x : 𝔸) : 𝔸 :=
+  (NormedSpace.expSeries 𝕂 𝔸).Sum x
+#align exp NormedSpace.exp
 -/
 
 variable {𝕂}
 
-#print expSeries_apply_eq /-
-theorem expSeries_apply_eq (x : 𝔸) (n : β„•) : (expSeries 𝕂 𝔸 n fun _ => x) = (n !⁻¹ : 𝕂) β€’ x ^ n :=
-  by simp [expSeries]
-#align exp_series_apply_eq expSeries_apply_eq
+#print NormedSpace.expSeries_apply_eq /-
+theorem NormedSpace.expSeries_apply_eq (x : 𝔸) (n : β„•) :
+    (NormedSpace.expSeries 𝕂 𝔸 n fun _ => x) = (n !⁻¹ : 𝕂) β€’ x ^ n := by
+  simp [NormedSpace.expSeries]
+#align exp_series_apply_eq NormedSpace.expSeries_apply_eq
 -/
 
-#print expSeries_apply_eq' /-
-theorem expSeries_apply_eq' (x : 𝔸) :
-    (fun n => expSeries 𝕂 𝔸 n fun _ => x) = fun n => (n !⁻¹ : 𝕂) β€’ x ^ n :=
-  funext (expSeries_apply_eq x)
-#align exp_series_apply_eq' expSeries_apply_eq'
+#print NormedSpace.expSeries_apply_eq' /-
+theorem NormedSpace.expSeries_apply_eq' (x : 𝔸) :
+    (fun n => NormedSpace.expSeries 𝕂 𝔸 n fun _ => x) = fun n => (n !⁻¹ : 𝕂) β€’ x ^ n :=
+  funext (NormedSpace.expSeries_apply_eq x)
+#align exp_series_apply_eq' NormedSpace.expSeries_apply_eq'
 -/
 
-#print expSeries_sum_eq /-
-theorem expSeries_sum_eq (x : 𝔸) : (expSeries 𝕂 𝔸).Sum x = βˆ‘' n : β„•, (n !⁻¹ : 𝕂) β€’ x ^ n :=
-  tsum_congr fun n => expSeries_apply_eq x n
-#align exp_series_sum_eq expSeries_sum_eq
+#print NormedSpace.expSeries_sum_eq /-
+theorem NormedSpace.expSeries_sum_eq (x : 𝔸) :
+    (NormedSpace.expSeries 𝕂 𝔸).Sum x = βˆ‘' n : β„•, (n !⁻¹ : 𝕂) β€’ x ^ n :=
+  tsum_congr fun n => NormedSpace.expSeries_apply_eq x n
+#align exp_series_sum_eq NormedSpace.expSeries_sum_eq
 -/
 
-#print exp_eq_tsum /-
-theorem exp_eq_tsum : exp 𝕂 = fun x : 𝔸 => βˆ‘' n : β„•, (n !⁻¹ : 𝕂) β€’ x ^ n :=
-  funext expSeries_sum_eq
-#align exp_eq_tsum exp_eq_tsum
+#print NormedSpace.exp_eq_tsum /-
+theorem NormedSpace.exp_eq_tsum : NormedSpace.exp 𝕂 = fun x : 𝔸 => βˆ‘' n : β„•, (n !⁻¹ : 𝕂) β€’ x ^ n :=
+  funext NormedSpace.expSeries_sum_eq
+#align exp_eq_tsum NormedSpace.exp_eq_tsum
 -/
 
-#print expSeries_apply_zero /-
-theorem expSeries_apply_zero (n : β„•) : (expSeries 𝕂 𝔸 n fun _ => (0 : 𝔸)) = Pi.single 0 1 n :=
+#print NormedSpace.expSeries_apply_zero /-
+theorem NormedSpace.expSeries_apply_zero (n : β„•) :
+    (NormedSpace.expSeries 𝕂 𝔸 n fun _ => (0 : 𝔸)) = Pi.single 0 1 n :=
   by
-  rw [expSeries_apply_eq]
+  rw [NormedSpace.expSeries_apply_eq]
   cases n
   Β· rw [pow_zero, Nat.factorial_zero, Nat.cast_one, inv_one, one_smul, Pi.single_eq_same]
   Β· rw [zero_pow (Nat.succ_pos _), smul_zero, Pi.single_eq_of_ne n.succ_ne_zero]
-#align exp_series_apply_zero expSeries_apply_zero
+#align exp_series_apply_zero NormedSpace.expSeries_apply_zero
 -/
 
-#print exp_zero /-
+#print NormedSpace.exp_zero /-
 @[simp]
-theorem exp_zero [T2Space 𝔸] : exp 𝕂 (0 : 𝔸) = 1 := by
-  simp_rw [exp_eq_tsum, ← expSeries_apply_eq, expSeries_apply_zero, tsum_pi_single]
-#align exp_zero exp_zero
+theorem NormedSpace.exp_zero [T2Space 𝔸] : NormedSpace.exp 𝕂 (0 : 𝔸) = 1 := by
+  simp_rw [NormedSpace.exp_eq_tsum, ← NormedSpace.expSeries_apply_eq,
+    NormedSpace.expSeries_apply_zero, tsum_pi_single]
+#align exp_zero NormedSpace.exp_zero
 -/
 
-#print exp_op /-
+#print NormedSpace.exp_op /-
 @[simp]
-theorem exp_op [T2Space 𝔸] (x : 𝔸) : exp 𝕂 (MulOpposite.op x) = MulOpposite.op (exp 𝕂 x) := by
-  simp_rw [exp, expSeries_sum_eq, ← MulOpposite.op_pow, ← MulOpposite.op_smul, tsum_op]
-#align exp_op exp_op
+theorem NormedSpace.exp_op [T2Space 𝔸] (x : 𝔸) :
+    NormedSpace.exp 𝕂 (MulOpposite.op x) = MulOpposite.op (NormedSpace.exp 𝕂 x) := by
+  simp_rw [NormedSpace.exp, NormedSpace.expSeries_sum_eq, ← MulOpposite.op_pow, ←
+    MulOpposite.op_smul, tsum_op]
+#align exp_op NormedSpace.exp_op
 -/
 
-#print exp_unop /-
+#print NormedSpace.exp_unop /-
 @[simp]
-theorem exp_unop [T2Space 𝔸] (x : 𝔸ᡐᡒᡖ) : exp 𝕂 (MulOpposite.unop x) = MulOpposite.unop (exp 𝕂 x) :=
-  by simp_rw [exp, expSeries_sum_eq, ← MulOpposite.unop_pow, ← MulOpposite.unop_smul, tsum_unop]
-#align exp_unop exp_unop
+theorem NormedSpace.exp_unop [T2Space 𝔸] (x : 𝔸ᡐᡒᡖ) :
+    NormedSpace.exp 𝕂 (MulOpposite.unop x) = MulOpposite.unop (NormedSpace.exp 𝕂 x) := by
+  simp_rw [NormedSpace.exp, NormedSpace.expSeries_sum_eq, ← MulOpposite.unop_pow, ←
+    MulOpposite.unop_smul, tsum_unop]
+#align exp_unop NormedSpace.exp_unop
 -/
 
-#print star_exp /-
-theorem star_exp [T2Space 𝔸] [StarRing 𝔸] [ContinuousStar 𝔸] (x : 𝔸) :
-    star (exp 𝕂 x) = exp 𝕂 (star x) := by
-  simp_rw [exp_eq_tsum, ← star_pow, ← star_inv_nat_cast_smul, ← tsum_star]
-#align star_exp star_exp
+#print NormedSpace.star_exp /-
+theorem NormedSpace.star_exp [T2Space 𝔸] [StarRing 𝔸] [ContinuousStar 𝔸] (x : 𝔸) :
+    star (NormedSpace.exp 𝕂 x) = NormedSpace.exp 𝕂 (star x) := by
+  simp_rw [NormedSpace.exp_eq_tsum, ← star_pow, ← star_inv_nat_cast_smul, ← tsum_star]
+#align star_exp NormedSpace.star_exp
 -/
 
 variable (𝕂)
 
 #print IsSelfAdjoint.exp /-
 theorem IsSelfAdjoint.exp [T2Space 𝔸] [StarRing 𝔸] [ContinuousStar 𝔸] {x : 𝔸}
-    (h : IsSelfAdjoint x) : IsSelfAdjoint (exp 𝕂 x) :=
-  (star_exp x).trans <| h.symm β–Έ rfl
+    (h : IsSelfAdjoint x) : IsSelfAdjoint (NormedSpace.exp 𝕂 x) :=
+  (NormedSpace.star_exp x).trans <| h.symm β–Έ rfl
 #align is_self_adjoint.exp IsSelfAdjoint.exp
 -/
 
 #print Commute.exp_right /-
-theorem Commute.exp_right [T2Space 𝔸] {x y : 𝔸} (h : Commute x y) : Commute x (exp 𝕂 y) :=
+theorem Commute.exp_right [T2Space 𝔸] {x y : 𝔸} (h : Commute x y) :
+    Commute x (NormedSpace.exp 𝕂 y) :=
   by
-  rw [exp_eq_tsum]
+  rw [NormedSpace.exp_eq_tsum]
   exact Commute.tsum_right x fun n => (h.pow_right n).smul_right _
 #align commute.exp_right Commute.exp_right
 -/
 
 #print Commute.exp_left /-
-theorem Commute.exp_left [T2Space 𝔸] {x y : 𝔸} (h : Commute x y) : Commute (exp 𝕂 x) y :=
+theorem Commute.exp_left [T2Space 𝔸] {x y : 𝔸} (h : Commute x y) :
+    Commute (NormedSpace.exp 𝕂 x) y :=
   (h.symm.exp_right 𝕂).symm
 #align commute.exp_left Commute.exp_left
 -/
 
 #print Commute.exp /-
-theorem Commute.exp [T2Space 𝔸] {x y : 𝔸} (h : Commute x y) : Commute (exp 𝕂 x) (exp 𝕂 y) :=
+theorem Commute.exp [T2Space 𝔸] {x y : 𝔸} (h : Commute x y) :
+    Commute (NormedSpace.exp 𝕂 x) (NormedSpace.exp 𝕂 y) :=
   (h.exp_left _).exp_right _
 #align commute.exp Commute.exp
 -/
@@ -198,30 +209,32 @@ section TopologicalDivisionAlgebra
 variable {𝕂 𝔸 : Type _} [Field 𝕂] [DivisionRing 𝔸] [Algebra 𝕂 𝔸] [TopologicalSpace 𝔸]
   [TopologicalRing 𝔸]
 
-#print expSeries_apply_eq_div /-
-theorem expSeries_apply_eq_div (x : 𝔸) (n : β„•) : (expSeries 𝕂 𝔸 n fun _ => x) = x ^ n / n ! := by
+#print NormedSpace.expSeries_apply_eq_div /-
+theorem NormedSpace.expSeries_apply_eq_div (x : 𝔸) (n : β„•) :
+    (NormedSpace.expSeries 𝕂 𝔸 n fun _ => x) = x ^ n / n ! := by
   rw [div_eq_mul_inv, ← (Nat.cast_commute n ! (x ^ n)).inv_leftβ‚€.Eq, ← smul_eq_mul,
-    expSeries_apply_eq, inv_nat_cast_smul_eq _ _ _ _]
-#align exp_series_apply_eq_div expSeries_apply_eq_div
+    NormedSpace.expSeries_apply_eq, inv_nat_cast_smul_eq _ _ _ _]
+#align exp_series_apply_eq_div NormedSpace.expSeries_apply_eq_div
 -/
 
-#print expSeries_apply_eq_div' /-
-theorem expSeries_apply_eq_div' (x : 𝔸) :
-    (fun n => expSeries 𝕂 𝔸 n fun _ => x) = fun n => x ^ n / n ! :=
-  funext (expSeries_apply_eq_div x)
-#align exp_series_apply_eq_div' expSeries_apply_eq_div'
+#print NormedSpace.expSeries_apply_eq_div' /-
+theorem NormedSpace.expSeries_apply_eq_div' (x : 𝔸) :
+    (fun n => NormedSpace.expSeries 𝕂 𝔸 n fun _ => x) = fun n => x ^ n / n ! :=
+  funext (NormedSpace.expSeries_apply_eq_div x)
+#align exp_series_apply_eq_div' NormedSpace.expSeries_apply_eq_div'
 -/
 
-#print expSeries_sum_eq_div /-
-theorem expSeries_sum_eq_div (x : 𝔸) : (expSeries 𝕂 𝔸).Sum x = βˆ‘' n : β„•, x ^ n / n ! :=
-  tsum_congr (expSeries_apply_eq_div x)
-#align exp_series_sum_eq_div expSeries_sum_eq_div
+#print NormedSpace.expSeries_sum_eq_div /-
+theorem NormedSpace.expSeries_sum_eq_div (x : 𝔸) :
+    (NormedSpace.expSeries 𝕂 𝔸).Sum x = βˆ‘' n : β„•, x ^ n / n ! :=
+  tsum_congr (NormedSpace.expSeries_apply_eq_div x)
+#align exp_series_sum_eq_div NormedSpace.expSeries_sum_eq_div
 -/
 
-#print exp_eq_tsum_div /-
-theorem exp_eq_tsum_div : exp 𝕂 = fun x : 𝔸 => βˆ‘' n : β„•, x ^ n / n ! :=
-  funext expSeries_sum_eq_div
-#align exp_eq_tsum_div exp_eq_tsum_div
+#print NormedSpace.exp_eq_tsum_div /-
+theorem NormedSpace.exp_eq_tsum_div : NormedSpace.exp 𝕂 = fun x : 𝔸 => βˆ‘' n : β„•, x ^ n / n ! :=
+  funext NormedSpace.expSeries_sum_eq_div
+#align exp_eq_tsum_div NormedSpace.exp_eq_tsum_div
 -/
 
 end TopologicalDivisionAlgebra
@@ -234,103 +247,111 @@ variable {𝕂 𝔸 𝔹 : Type _} [NontriviallyNormedField 𝕂]
 
 variable [NormedRing 𝔸] [NormedRing 𝔹] [NormedAlgebra 𝕂 𝔸] [NormedAlgebra 𝕂 𝔹]
 
-#print norm_expSeries_summable_of_mem_ball /-
-theorem norm_expSeries_summable_of_mem_ball (x : 𝔸)
-    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
-    Summable fun n => β€–expSeries 𝕂 𝔸 n fun _ => xβ€– :=
-  (expSeries 𝕂 𝔸).summable_norm_apply hx
-#align norm_exp_series_summable_of_mem_ball norm_expSeries_summable_of_mem_ball
+#print NormedSpace.norm_expSeries_summable_of_mem_ball /-
+theorem NormedSpace.norm_expSeries_summable_of_mem_ball (x : 𝔸)
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (NormedSpace.expSeries 𝕂 𝔸).radius) :
+    Summable fun n => β€–NormedSpace.expSeries 𝕂 𝔸 n fun _ => xβ€– :=
+  (NormedSpace.expSeries 𝕂 𝔸).summable_norm_apply hx
+#align norm_exp_series_summable_of_mem_ball NormedSpace.norm_expSeries_summable_of_mem_ball
 -/
 
-#print norm_expSeries_summable_of_mem_ball' /-
-theorem norm_expSeries_summable_of_mem_ball' (x : 𝔸)
-    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
+#print NormedSpace.norm_expSeries_summable_of_mem_ball' /-
+theorem NormedSpace.norm_expSeries_summable_of_mem_ball' (x : 𝔸)
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (NormedSpace.expSeries 𝕂 𝔸).radius) :
     Summable fun n => β€–(n !⁻¹ : 𝕂) β€’ x ^ nβ€– :=
   by
   change Summable (norm ∘ _)
-  rw [← expSeries_apply_eq']
-  exact norm_expSeries_summable_of_mem_ball x hx
-#align norm_exp_series_summable_of_mem_ball' norm_expSeries_summable_of_mem_ball'
+  rw [← NormedSpace.expSeries_apply_eq']
+  exact NormedSpace.norm_expSeries_summable_of_mem_ball x hx
+#align norm_exp_series_summable_of_mem_ball' NormedSpace.norm_expSeries_summable_of_mem_ball'
 -/
 
 section CompleteAlgebra
 
 variable [CompleteSpace 𝔸]
 
-#print expSeries_summable_of_mem_ball /-
-theorem expSeries_summable_of_mem_ball (x : 𝔸)
-    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
-    Summable fun n => expSeries 𝕂 𝔸 n fun _ => x :=
-  Summable.of_norm (norm_expSeries_summable_of_mem_ball x hx)
-#align exp_series_summable_of_mem_ball expSeries_summable_of_mem_ball
+#print NormedSpace.expSeries_summable_of_mem_ball /-
+theorem NormedSpace.expSeries_summable_of_mem_ball (x : 𝔸)
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (NormedSpace.expSeries 𝕂 𝔸).radius) :
+    Summable fun n => NormedSpace.expSeries 𝕂 𝔸 n fun _ => x :=
+  Summable.of_norm (NormedSpace.norm_expSeries_summable_of_mem_ball x hx)
+#align exp_series_summable_of_mem_ball NormedSpace.expSeries_summable_of_mem_ball
 -/
 
-#print expSeries_summable_of_mem_ball' /-
-theorem expSeries_summable_of_mem_ball' (x : 𝔸)
-    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
+#print NormedSpace.expSeries_summable_of_mem_ball' /-
+theorem NormedSpace.expSeries_summable_of_mem_ball' (x : 𝔸)
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (NormedSpace.expSeries 𝕂 𝔸).radius) :
     Summable fun n => (n !⁻¹ : 𝕂) β€’ x ^ n :=
-  Summable.of_norm (norm_expSeries_summable_of_mem_ball' x hx)
-#align exp_series_summable_of_mem_ball' expSeries_summable_of_mem_ball'
+  Summable.of_norm (NormedSpace.norm_expSeries_summable_of_mem_ball' x hx)
+#align exp_series_summable_of_mem_ball' NormedSpace.expSeries_summable_of_mem_ball'
 -/
 
-#print expSeries_hasSum_exp_of_mem_ball /-
-theorem expSeries_hasSum_exp_of_mem_ball (x : 𝔸)
-    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
-    HasSum (fun n => expSeries 𝕂 𝔸 n fun _ => x) (exp 𝕂 x) :=
-  FormalMultilinearSeries.hasSum (expSeries 𝕂 𝔸) hx
-#align exp_series_has_sum_exp_of_mem_ball expSeries_hasSum_exp_of_mem_ball
+#print NormedSpace.expSeries_hasSum_exp_of_mem_ball /-
+theorem NormedSpace.expSeries_hasSum_exp_of_mem_ball (x : 𝔸)
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (NormedSpace.expSeries 𝕂 𝔸).radius) :
+    HasSum (fun n => NormedSpace.expSeries 𝕂 𝔸 n fun _ => x) (NormedSpace.exp 𝕂 x) :=
+  FormalMultilinearSeries.hasSum (NormedSpace.expSeries 𝕂 𝔸) hx
+#align exp_series_has_sum_exp_of_mem_ball NormedSpace.expSeries_hasSum_exp_of_mem_ball
 -/
 
-#print expSeries_hasSum_exp_of_mem_ball' /-
-theorem expSeries_hasSum_exp_of_mem_ball' (x : 𝔸)
-    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
-    HasSum (fun n => (n !⁻¹ : 𝕂) β€’ x ^ n) (exp 𝕂 x) :=
+#print NormedSpace.expSeries_hasSum_exp_of_mem_ball' /-
+theorem NormedSpace.expSeries_hasSum_exp_of_mem_ball' (x : 𝔸)
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (NormedSpace.expSeries 𝕂 𝔸).radius) :
+    HasSum (fun n => (n !⁻¹ : 𝕂) β€’ x ^ n) (NormedSpace.exp 𝕂 x) :=
   by
-  rw [← expSeries_apply_eq']
-  exact expSeries_hasSum_exp_of_mem_ball x hx
-#align exp_series_has_sum_exp_of_mem_ball' expSeries_hasSum_exp_of_mem_ball'
+  rw [← NormedSpace.expSeries_apply_eq']
+  exact NormedSpace.expSeries_hasSum_exp_of_mem_ball x hx
+#align exp_series_has_sum_exp_of_mem_ball' NormedSpace.expSeries_hasSum_exp_of_mem_ball'
 -/
 
-#print hasFPowerSeriesOnBall_exp_of_radius_pos /-
-theorem hasFPowerSeriesOnBall_exp_of_radius_pos (h : 0 < (expSeries 𝕂 𝔸).radius) :
-    HasFPowerSeriesOnBall (exp 𝕂) (expSeries 𝕂 𝔸) 0 (expSeries 𝕂 𝔸).radius :=
-  (expSeries 𝕂 𝔸).HasFPowerSeriesOnBall h
-#align has_fpower_series_on_ball_exp_of_radius_pos hasFPowerSeriesOnBall_exp_of_radius_pos
+#print NormedSpace.hasFPowerSeriesOnBall_exp_of_radius_pos /-
+theorem NormedSpace.hasFPowerSeriesOnBall_exp_of_radius_pos
+    (h : 0 < (NormedSpace.expSeries 𝕂 𝔸).radius) :
+    HasFPowerSeriesOnBall (NormedSpace.exp 𝕂) (NormedSpace.expSeries 𝕂 𝔸) 0
+      (NormedSpace.expSeries 𝕂 𝔸).radius :=
+  (NormedSpace.expSeries 𝕂 𝔸).HasFPowerSeriesOnBall h
+#align has_fpower_series_on_ball_exp_of_radius_pos NormedSpace.hasFPowerSeriesOnBall_exp_of_radius_pos
 -/
 
-#print hasFPowerSeriesAt_exp_zero_of_radius_pos /-
-theorem hasFPowerSeriesAt_exp_zero_of_radius_pos (h : 0 < (expSeries 𝕂 𝔸).radius) :
-    HasFPowerSeriesAt (exp 𝕂) (expSeries 𝕂 𝔸) 0 :=
-  (hasFPowerSeriesOnBall_exp_of_radius_pos h).HasFPowerSeriesAt
-#align has_fpower_series_at_exp_zero_of_radius_pos hasFPowerSeriesAt_exp_zero_of_radius_pos
+#print NormedSpace.hasFPowerSeriesAt_exp_zero_of_radius_pos /-
+theorem NormedSpace.hasFPowerSeriesAt_exp_zero_of_radius_pos
+    (h : 0 < (NormedSpace.expSeries 𝕂 𝔸).radius) :
+    HasFPowerSeriesAt (NormedSpace.exp 𝕂) (NormedSpace.expSeries 𝕂 𝔸) 0 :=
+  (NormedSpace.hasFPowerSeriesOnBall_exp_of_radius_pos h).HasFPowerSeriesAt
+#align has_fpower_series_at_exp_zero_of_radius_pos NormedSpace.hasFPowerSeriesAt_exp_zero_of_radius_pos
 -/
 
-#print continuousOn_exp /-
-theorem continuousOn_exp : ContinuousOn (exp 𝕂 : 𝔸 β†’ 𝔸) (EMetric.ball 0 (expSeries 𝕂 𝔸).radius) :=
+#print NormedSpace.continuousOn_exp /-
+theorem NormedSpace.continuousOn_exp :
+    ContinuousOn (NormedSpace.exp 𝕂 : 𝔸 β†’ 𝔸) (EMetric.ball 0 (NormedSpace.expSeries 𝕂 𝔸).radius) :=
   FormalMultilinearSeries.continuousOn
-#align continuous_on_exp continuousOn_exp
+#align continuous_on_exp NormedSpace.continuousOn_exp
 -/
 
-#print analyticAt_exp_of_mem_ball /-
-theorem analyticAt_exp_of_mem_ball (x : 𝔸) (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
-    AnalyticAt 𝕂 (exp 𝕂) x := by
-  by_cases h : (expSeries 𝕂 𝔸).radius = 0
+#print NormedSpace.analyticAt_exp_of_mem_ball /-
+theorem NormedSpace.analyticAt_exp_of_mem_ball (x : 𝔸)
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (NormedSpace.expSeries 𝕂 𝔸).radius) :
+    AnalyticAt 𝕂 (NormedSpace.exp 𝕂) x :=
+  by
+  by_cases h : (NormedSpace.expSeries 𝕂 𝔸).radius = 0
   Β· rw [h] at hx ; exact (ENNReal.not_lt_zero hx).elim
   Β· have h := pos_iff_ne_zero.mpr h
-    exact (hasFPowerSeriesOnBall_exp_of_radius_pos h).analyticAt_of_mem hx
-#align analytic_at_exp_of_mem_ball analyticAt_exp_of_mem_ball
+    exact (NormedSpace.hasFPowerSeriesOnBall_exp_of_radius_pos h).analyticAt_of_mem hx
+#align analytic_at_exp_of_mem_ball NormedSpace.analyticAt_exp_of_mem_ball
 -/
 
-#print exp_add_of_commute_of_mem_ball /-
+#print NormedSpace.exp_add_of_commute_of_mem_ball /-
 /-- In a Banach-algebra `𝔸` over a normed field `𝕂` of characteristic zero, if `x` and `y` are
 in the disk of convergence and commute, then `exp 𝕂 (x + y) = (exp 𝕂 x) * (exp 𝕂 y)`. -/
-theorem exp_add_of_commute_of_mem_ball [CharZero 𝕂] {x y : 𝔸} (hxy : Commute x y)
-    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius)
-    (hy : y ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : exp 𝕂 (x + y) = exp 𝕂 x * exp 𝕂 y :=
+theorem NormedSpace.exp_add_of_commute_of_mem_ball [CharZero 𝕂] {x y : 𝔸} (hxy : Commute x y)
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (NormedSpace.expSeries 𝕂 𝔸).radius)
+    (hy : y ∈ EMetric.ball (0 : 𝔸) (NormedSpace.expSeries 𝕂 𝔸).radius) :
+    NormedSpace.exp 𝕂 (x + y) = NormedSpace.exp 𝕂 x * NormedSpace.exp 𝕂 y :=
   by
-  rw [exp_eq_tsum,
+  rw [NormedSpace.exp_eq_tsum,
     tsum_mul_tsum_eq_tsum_sum_antidiagonal_of_summable_norm
-      (norm_expSeries_summable_of_mem_ball' x hx) (norm_expSeries_summable_of_mem_ball' y hy)]
+      (NormedSpace.norm_expSeries_summable_of_mem_ball' x hx)
+      (NormedSpace.norm_expSeries_summable_of_mem_ball' y hy)]
   dsimp only
   conv_lhs =>
     congr
@@ -342,69 +363,72 @@ theorem exp_add_of_commute_of_mem_ball [CharZero 𝕂] {x y : 𝔸} (hxy : Commu
   congr 1
   have : (n ! : 𝕂) β‰  0 := nat.cast_ne_zero.mpr n.factorial_ne_zero
   field_simp [this]
-#align exp_add_of_commute_of_mem_ball exp_add_of_commute_of_mem_ball
+#align exp_add_of_commute_of_mem_ball NormedSpace.exp_add_of_commute_of_mem_ball
 -/
 
-#print invertibleExpOfMemBall /-
+#print NormedSpace.invertibleExpOfMemBall /-
 /-- `exp 𝕂 x` has explicit two-sided inverse `exp 𝕂 (-x)`. -/
-noncomputable def invertibleExpOfMemBall [CharZero 𝕂] {x : 𝔸}
-    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : Invertible (exp 𝕂 x)
+noncomputable def NormedSpace.invertibleExpOfMemBall [CharZero 𝕂] {x : 𝔸}
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (NormedSpace.expSeries 𝕂 𝔸).radius) :
+    Invertible (NormedSpace.exp 𝕂 x)
     where
-  invOf := exp 𝕂 (-x)
+  invOf := NormedSpace.exp 𝕂 (-x)
   invOf_hMul_self :=
     by
-    have hnx : -x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius :=
+    have hnx : -x ∈ EMetric.ball (0 : 𝔸) (NormedSpace.expSeries 𝕂 𝔸).radius :=
       by
       rw [EMetric.mem_ball, ← neg_zero, edist_neg_neg]
       exact hx
-    rw [← exp_add_of_commute_of_mem_ball (Commute.neg_left <| Commute.refl x) hnx hx, neg_add_self,
-      exp_zero]
+    rw [← NormedSpace.exp_add_of_commute_of_mem_ball (Commute.neg_left <| Commute.refl x) hnx hx,
+      neg_add_self, NormedSpace.exp_zero]
   hMul_invOf_self :=
     by
-    have hnx : -x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius :=
+    have hnx : -x ∈ EMetric.ball (0 : 𝔸) (NormedSpace.expSeries 𝕂 𝔸).radius :=
       by
       rw [EMetric.mem_ball, ← neg_zero, edist_neg_neg]
       exact hx
-    rw [← exp_add_of_commute_of_mem_ball (Commute.neg_right <| Commute.refl x) hx hnx, add_neg_self,
-      exp_zero]
-#align invertible_exp_of_mem_ball invertibleExpOfMemBall
+    rw [← NormedSpace.exp_add_of_commute_of_mem_ball (Commute.neg_right <| Commute.refl x) hx hnx,
+      add_neg_self, NormedSpace.exp_zero]
+#align invertible_exp_of_mem_ball NormedSpace.invertibleExpOfMemBall
 -/
 
-#print isUnit_exp_of_mem_ball /-
-theorem isUnit_exp_of_mem_ball [CharZero 𝕂] {x : 𝔸}
-    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : IsUnit (exp 𝕂 x) :=
-  @isUnit_of_invertible _ _ _ (invertibleExpOfMemBall hx)
-#align is_unit_exp_of_mem_ball isUnit_exp_of_mem_ball
+#print NormedSpace.isUnit_exp_of_mem_ball /-
+theorem NormedSpace.isUnit_exp_of_mem_ball [CharZero 𝕂] {x : 𝔸}
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (NormedSpace.expSeries 𝕂 𝔸).radius) :
+    IsUnit (NormedSpace.exp 𝕂 x) :=
+  @isUnit_of_invertible _ _ _ (NormedSpace.invertibleExpOfMemBall hx)
+#align is_unit_exp_of_mem_ball NormedSpace.isUnit_exp_of_mem_ball
 -/
 
-#print invOf_exp_of_mem_ball /-
-theorem invOf_exp_of_mem_ball [CharZero 𝕂] {x : 𝔸}
-    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) [Invertible (exp 𝕂 x)] :
-    β…Ÿ (exp 𝕂 x) = exp 𝕂 (-x) := by letI := invertibleExpOfMemBall hx;
-  convert (rfl : β…Ÿ (exp 𝕂 x) = _)
-#align inv_of_exp_of_mem_ball invOf_exp_of_mem_ball
+#print NormedSpace.invOf_exp_of_mem_ball /-
+theorem NormedSpace.invOf_exp_of_mem_ball [CharZero 𝕂] {x : 𝔸}
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (NormedSpace.expSeries 𝕂 𝔸).radius)
+    [Invertible (NormedSpace.exp 𝕂 x)] : β…Ÿ (NormedSpace.exp 𝕂 x) = NormedSpace.exp 𝕂 (-x) := by
+  letI := NormedSpace.invertibleExpOfMemBall hx; convert (rfl : β…Ÿ (NormedSpace.exp 𝕂 x) = _)
+#align inv_of_exp_of_mem_ball NormedSpace.invOf_exp_of_mem_ball
 -/
 
-#print map_exp_of_mem_ball /-
+#print NormedSpace.map_exp_of_mem_ball /-
 /-- Any continuous ring homomorphism commutes with `exp`. -/
-theorem map_exp_of_mem_ball {F} [RingHomClass F 𝔸 𝔹] (f : F) (hf : Continuous f) (x : 𝔸)
-    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : f (exp 𝕂 x) = exp 𝕂 (f x) :=
+theorem NormedSpace.map_exp_of_mem_ball {F} [RingHomClass F 𝔸 𝔹] (f : F) (hf : Continuous f) (x : 𝔸)
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (NormedSpace.expSeries 𝕂 𝔸).radius) :
+    f (NormedSpace.exp 𝕂 x) = NormedSpace.exp 𝕂 (f x) :=
   by
-  rw [exp_eq_tsum, exp_eq_tsum]
-  refine' ((expSeries_summable_of_mem_ball' _ hx).HasSum.map f hf).tsum_eq.symm.trans _
+  rw [NormedSpace.exp_eq_tsum, NormedSpace.exp_eq_tsum]
+  refine' ((NormedSpace.expSeries_summable_of_mem_ball' _ hx).HasSum.map f hf).tsum_eq.symm.trans _
   dsimp only [Function.comp]
   simp_rw [one_div, map_inv_nat_cast_smul f 𝕂 𝕂, map_pow]
-#align map_exp_of_mem_ball map_exp_of_mem_ball
+#align map_exp_of_mem_ball NormedSpace.map_exp_of_mem_ball
 -/
 
 end CompleteAlgebra
 
-#print algebraMap_exp_comm_of_mem_ball /-
-theorem algebraMap_exp_comm_of_mem_ball [CompleteSpace 𝕂] (x : 𝕂)
-    (hx : x ∈ EMetric.ball (0 : 𝕂) (expSeries 𝕂 𝕂).radius) :
-    algebraMap 𝕂 𝔸 (exp 𝕂 x) = exp 𝕂 (algebraMap 𝕂 𝔸 x) :=
-  map_exp_of_mem_ball _ (continuous_algebraMap 𝕂 𝔸) _ hx
-#align algebra_map_exp_comm_of_mem_ball algebraMap_exp_comm_of_mem_ball
+#print NormedSpace.algebraMap_exp_comm_of_mem_ball /-
+theorem NormedSpace.algebraMap_exp_comm_of_mem_ball [CompleteSpace 𝕂] (x : 𝕂)
+    (hx : x ∈ EMetric.ball (0 : 𝕂) (NormedSpace.expSeries 𝕂 𝕂).radius) :
+    algebraMap 𝕂 𝔸 (NormedSpace.exp 𝕂 x) = NormedSpace.exp 𝕂 (algebraMap 𝕂 𝔸 x) :=
+  NormedSpace.map_exp_of_mem_ball _ (continuous_algebraMap 𝕂 𝔸) _ hx
+#align algebra_map_exp_comm_of_mem_ball NormedSpace.algebraMap_exp_comm_of_mem_ball
 -/
 
 end AnyFieldAnyAlgebra
@@ -415,41 +439,44 @@ variable {𝕂 𝔸 : Type _} [NontriviallyNormedField 𝕂] [NormedDivisionRing
 
 variable (𝕂)
 
-#print norm_expSeries_div_summable_of_mem_ball /-
-theorem norm_expSeries_div_summable_of_mem_ball (x : 𝔸)
-    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : Summable fun n => β€–x ^ n / n !β€– :=
+#print NormedSpace.norm_expSeries_div_summable_of_mem_ball /-
+theorem NormedSpace.norm_expSeries_div_summable_of_mem_ball (x : 𝔸)
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (NormedSpace.expSeries 𝕂 𝔸).radius) :
+    Summable fun n => β€–x ^ n / n !β€– :=
   by
   change Summable (norm ∘ _)
-  rw [← expSeries_apply_eq_div' x]
-  exact norm_expSeries_summable_of_mem_ball x hx
-#align norm_exp_series_div_summable_of_mem_ball norm_expSeries_div_summable_of_mem_ball
+  rw [← NormedSpace.expSeries_apply_eq_div' x]
+  exact NormedSpace.norm_expSeries_summable_of_mem_ball x hx
+#align norm_exp_series_div_summable_of_mem_ball NormedSpace.norm_expSeries_div_summable_of_mem_ball
 -/
 
-#print expSeries_div_summable_of_mem_ball /-
-theorem expSeries_div_summable_of_mem_ball [CompleteSpace 𝔸] (x : 𝔸)
-    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : Summable fun n => x ^ n / n ! :=
-  Summable.of_norm (norm_expSeries_div_summable_of_mem_ball 𝕂 x hx)
-#align exp_series_div_summable_of_mem_ball expSeries_div_summable_of_mem_ball
+#print NormedSpace.expSeries_div_summable_of_mem_ball /-
+theorem NormedSpace.expSeries_div_summable_of_mem_ball [CompleteSpace 𝔸] (x : 𝔸)
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (NormedSpace.expSeries 𝕂 𝔸).radius) :
+    Summable fun n => x ^ n / n ! :=
+  Summable.of_norm (NormedSpace.norm_expSeries_div_summable_of_mem_ball 𝕂 x hx)
+#align exp_series_div_summable_of_mem_ball NormedSpace.expSeries_div_summable_of_mem_ball
 -/
 
-#print expSeries_div_hasSum_exp_of_mem_ball /-
-theorem expSeries_div_hasSum_exp_of_mem_ball [CompleteSpace 𝔸] (x : 𝔸)
-    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
-    HasSum (fun n => x ^ n / n !) (exp 𝕂 x) :=
+#print NormedSpace.expSeries_div_hasSum_exp_of_mem_ball /-
+theorem NormedSpace.expSeries_div_hasSum_exp_of_mem_ball [CompleteSpace 𝔸] (x : 𝔸)
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (NormedSpace.expSeries 𝕂 𝔸).radius) :
+    HasSum (fun n => x ^ n / n !) (NormedSpace.exp 𝕂 x) :=
   by
-  rw [← expSeries_apply_eq_div' x]
-  exact expSeries_hasSum_exp_of_mem_ball x hx
-#align exp_series_div_has_sum_exp_of_mem_ball expSeries_div_hasSum_exp_of_mem_ball
+  rw [← NormedSpace.expSeries_apply_eq_div' x]
+  exact NormedSpace.expSeries_hasSum_exp_of_mem_ball x hx
+#align exp_series_div_has_sum_exp_of_mem_ball NormedSpace.expSeries_div_hasSum_exp_of_mem_ball
 -/
 
 variable {𝕂}
 
-#print exp_neg_of_mem_ball /-
-theorem exp_neg_of_mem_ball [CharZero 𝕂] [CompleteSpace 𝔸] {x : 𝔸}
-    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : exp 𝕂 (-x) = (exp 𝕂 x)⁻¹ :=
-  letI := invertibleExpOfMemBall hx
-  invOf_eq_inv (exp 𝕂 x)
-#align exp_neg_of_mem_ball exp_neg_of_mem_ball
+#print NormedSpace.exp_neg_of_mem_ball /-
+theorem NormedSpace.exp_neg_of_mem_ball [CharZero 𝕂] [CompleteSpace 𝔸] {x : 𝔸}
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (NormedSpace.expSeries 𝕂 𝔸).radius) :
+    NormedSpace.exp 𝕂 (-x) = (NormedSpace.exp 𝕂 x)⁻¹ :=
+  letI := NormedSpace.invertibleExpOfMemBall hx
+  invOf_eq_inv (NormedSpace.exp 𝕂 x)
+#align exp_neg_of_mem_ball NormedSpace.exp_neg_of_mem_ball
 -/
 
 end AnyFieldDivisionAlgebra
@@ -459,14 +486,15 @@ section AnyFieldCommAlgebra
 variable {𝕂 𝔸 : Type _} [NontriviallyNormedField 𝕂] [NormedCommRing 𝔸] [NormedAlgebra 𝕂 𝔸]
   [CompleteSpace 𝔸]
 
-#print exp_add_of_mem_ball /-
+#print NormedSpace.exp_add_of_mem_ball /-
 /-- In a commutative Banach-algebra `𝔸` over a normed field `𝕂` of characteristic zero,
 `exp 𝕂 (x+y) = (exp 𝕂 x) * (exp 𝕂 y)` for all `x`, `y` in the disk of convergence. -/
-theorem exp_add_of_mem_ball [CharZero 𝕂] {x y : 𝔸}
-    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius)
-    (hy : y ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : exp 𝕂 (x + y) = exp 𝕂 x * exp 𝕂 y :=
-  exp_add_of_commute_of_mem_ball (Commute.all x y) hx hy
-#align exp_add_of_mem_ball exp_add_of_mem_ball
+theorem NormedSpace.exp_add_of_mem_ball [CharZero 𝕂] {x y : 𝔸}
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (NormedSpace.expSeries 𝕂 𝔸).radius)
+    (hy : y ∈ EMetric.ball (0 : 𝔸) (NormedSpace.expSeries 𝕂 𝔸).radius) :
+    NormedSpace.exp 𝕂 (x + y) = NormedSpace.exp 𝕂 x * NormedSpace.exp 𝕂 y :=
+  NormedSpace.exp_add_of_commute_of_mem_ball (Commute.all x y) hx hy
+#align exp_add_of_mem_ball NormedSpace.exp_add_of_mem_ball
 -/
 
 end AnyFieldCommAlgebra
@@ -479,217 +507,242 @@ variable (𝕂 𝔸 𝔹 : Type _) [IsROrC 𝕂] [NormedRing 𝔸] [NormedAlgebr
 
 variable [NormedRing 𝔹] [NormedAlgebra 𝕂 𝔹]
 
-#print expSeries_radius_eq_top /-
+#print NormedSpace.expSeries_radius_eq_top /-
 /-- In a normed algebra `𝔸` over `𝕂 = ℝ` or `𝕂 = β„‚`, the series defining the exponential map
 has an infinite radius of convergence. -/
-theorem expSeries_radius_eq_top : (expSeries 𝕂 𝔸).radius = ∞ :=
+theorem NormedSpace.expSeries_radius_eq_top : (NormedSpace.expSeries 𝕂 𝔸).radius = ∞ :=
   by
-  refine' (expSeries 𝕂 𝔸).radius_eq_top_of_summable_norm fun r => _
+  refine' (NormedSpace.expSeries 𝕂 𝔸).radius_eq_top_of_summable_norm fun r => _
   refine' Summable.of_norm_bounded_eventually _ (Real.summable_pow_div_factorial r) _
   filter_upwards [eventually_cofinite_ne 0] with n hn
-  rw [norm_mul, norm_norm (expSeries 𝕂 𝔸 n), expSeries, norm_smul, norm_inv, norm_pow,
-    NNReal.norm_eq, norm_nat_cast, mul_comm, ← mul_assoc, ← div_eq_mul_inv]
+  rw [norm_mul, norm_norm (NormedSpace.expSeries 𝕂 𝔸 n), NormedSpace.expSeries, norm_smul, norm_inv,
+    norm_pow, NNReal.norm_eq, norm_nat_cast, mul_comm, ← mul_assoc, ← div_eq_mul_inv]
   have : β€–ContinuousMultilinearMap.mkPiAlgebraFin 𝕂 n 𝔸‖ ≀ 1 :=
     norm_mk_pi_algebra_fin_le_of_pos (Nat.pos_of_ne_zero hn)
   exact mul_le_of_le_one_right (div_nonneg (pow_nonneg r.coe_nonneg n) n !.cast_nonneg) this
-#align exp_series_radius_eq_top expSeries_radius_eq_top
+#align exp_series_radius_eq_top NormedSpace.expSeries_radius_eq_top
 -/
 
-#print expSeries_radius_pos /-
-theorem expSeries_radius_pos : 0 < (expSeries 𝕂 𝔸).radius :=
+#print NormedSpace.expSeries_radius_pos /-
+theorem NormedSpace.expSeries_radius_pos : 0 < (NormedSpace.expSeries 𝕂 𝔸).radius :=
   by
-  rw [expSeries_radius_eq_top]
+  rw [NormedSpace.expSeries_radius_eq_top]
   exact WithTop.zero_lt_top
-#align exp_series_radius_pos expSeries_radius_pos
+#align exp_series_radius_pos NormedSpace.expSeries_radius_pos
 -/
 
 variable {𝕂 𝔸 𝔹}
 
-#print norm_expSeries_summable /-
-theorem norm_expSeries_summable (x : 𝔸) : Summable fun n => β€–expSeries 𝕂 𝔸 n fun _ => xβ€– :=
-  norm_expSeries_summable_of_mem_ball x ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
-#align norm_exp_series_summable norm_expSeries_summable
+#print NormedSpace.norm_expSeries_summable /-
+theorem NormedSpace.norm_expSeries_summable (x : 𝔸) :
+    Summable fun n => β€–NormedSpace.expSeries 𝕂 𝔸 n fun _ => xβ€– :=
+  NormedSpace.norm_expSeries_summable_of_mem_ball x
+    ((NormedSpace.expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
+#align norm_exp_series_summable NormedSpace.norm_expSeries_summable
 -/
 
-#print norm_expSeries_summable' /-
-theorem norm_expSeries_summable' (x : 𝔸) : Summable fun n => β€–(n !⁻¹ : 𝕂) β€’ x ^ nβ€– :=
-  norm_expSeries_summable_of_mem_ball' x ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
-#align norm_exp_series_summable' norm_expSeries_summable'
+#print NormedSpace.norm_expSeries_summable' /-
+theorem NormedSpace.norm_expSeries_summable' (x : 𝔸) : Summable fun n => β€–(n !⁻¹ : 𝕂) β€’ x ^ nβ€– :=
+  NormedSpace.norm_expSeries_summable_of_mem_ball' x
+    ((NormedSpace.expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
+#align norm_exp_series_summable' NormedSpace.norm_expSeries_summable'
 -/
 
 section CompleteAlgebra
 
 variable [CompleteSpace 𝔸]
 
-#print expSeries_summable /-
-theorem expSeries_summable (x : 𝔸) : Summable fun n => expSeries 𝕂 𝔸 n fun _ => x :=
-  Summable.of_norm (norm_expSeries_summable x)
-#align exp_series_summable expSeries_summable
+#print NormedSpace.expSeries_summable /-
+theorem NormedSpace.expSeries_summable (x : 𝔸) :
+    Summable fun n => NormedSpace.expSeries 𝕂 𝔸 n fun _ => x :=
+  Summable.of_norm (NormedSpace.norm_expSeries_summable x)
+#align exp_series_summable NormedSpace.expSeries_summable
 -/
 
-#print expSeries_summable' /-
-theorem expSeries_summable' (x : 𝔸) : Summable fun n => (n !⁻¹ : 𝕂) β€’ x ^ n :=
-  Summable.of_norm (norm_expSeries_summable' x)
-#align exp_series_summable' expSeries_summable'
+#print NormedSpace.expSeries_summable' /-
+theorem NormedSpace.expSeries_summable' (x : 𝔸) : Summable fun n => (n !⁻¹ : 𝕂) β€’ x ^ n :=
+  Summable.of_norm (NormedSpace.norm_expSeries_summable' x)
+#align exp_series_summable' NormedSpace.expSeries_summable'
 -/
 
-#print expSeries_hasSum_exp /-
-theorem expSeries_hasSum_exp (x : 𝔸) : HasSum (fun n => expSeries 𝕂 𝔸 n fun _ => x) (exp 𝕂 x) :=
-  expSeries_hasSum_exp_of_mem_ball x ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
-#align exp_series_has_sum_exp expSeries_hasSum_exp
+#print NormedSpace.expSeries_hasSum_exp /-
+theorem NormedSpace.expSeries_hasSum_exp (x : 𝔸) :
+    HasSum (fun n => NormedSpace.expSeries 𝕂 𝔸 n fun _ => x) (NormedSpace.exp 𝕂 x) :=
+  NormedSpace.expSeries_hasSum_exp_of_mem_ball x
+    ((NormedSpace.expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
+#align exp_series_has_sum_exp NormedSpace.expSeries_hasSum_exp
 -/
 
-#print exp_series_hasSum_exp' /-
-theorem exp_series_hasSum_exp' (x : 𝔸) : HasSum (fun n => (n !⁻¹ : 𝕂) β€’ x ^ n) (exp 𝕂 x) :=
-  expSeries_hasSum_exp_of_mem_ball' x ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
-#align exp_series_has_sum_exp' exp_series_hasSum_exp'
+#print NormedSpace.exp_series_hasSum_exp' /-
+theorem NormedSpace.exp_series_hasSum_exp' (x : 𝔸) :
+    HasSum (fun n => (n !⁻¹ : 𝕂) β€’ x ^ n) (NormedSpace.exp 𝕂 x) :=
+  NormedSpace.expSeries_hasSum_exp_of_mem_ball' x
+    ((NormedSpace.expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
+#align exp_series_has_sum_exp' NormedSpace.exp_series_hasSum_exp'
 -/
 
-#print exp_hasFPowerSeriesOnBall /-
-theorem exp_hasFPowerSeriesOnBall : HasFPowerSeriesOnBall (exp 𝕂) (expSeries 𝕂 𝔸) 0 ∞ :=
-  expSeries_radius_eq_top 𝕂 𝔸 β–Έ hasFPowerSeriesOnBall_exp_of_radius_pos (expSeries_radius_pos _ _)
-#align exp_has_fpower_series_on_ball exp_hasFPowerSeriesOnBall
+#print NormedSpace.exp_hasFPowerSeriesOnBall /-
+theorem NormedSpace.exp_hasFPowerSeriesOnBall :
+    HasFPowerSeriesOnBall (NormedSpace.exp 𝕂) (NormedSpace.expSeries 𝕂 𝔸) 0 ∞ :=
+  NormedSpace.expSeries_radius_eq_top 𝕂 𝔸 β–Έ
+    NormedSpace.hasFPowerSeriesOnBall_exp_of_radius_pos (NormedSpace.expSeries_radius_pos _ _)
+#align exp_has_fpower_series_on_ball NormedSpace.exp_hasFPowerSeriesOnBall
 -/
 
-#print exp_hasFPowerSeriesAt_zero /-
-theorem exp_hasFPowerSeriesAt_zero : HasFPowerSeriesAt (exp 𝕂) (expSeries 𝕂 𝔸) 0 :=
-  exp_hasFPowerSeriesOnBall.HasFPowerSeriesAt
-#align exp_has_fpower_series_at_zero exp_hasFPowerSeriesAt_zero
+#print NormedSpace.exp_hasFPowerSeriesAt_zero /-
+theorem NormedSpace.exp_hasFPowerSeriesAt_zero :
+    HasFPowerSeriesAt (NormedSpace.exp 𝕂) (NormedSpace.expSeries 𝕂 𝔸) 0 :=
+  NormedSpace.exp_hasFPowerSeriesOnBall.HasFPowerSeriesAt
+#align exp_has_fpower_series_at_zero NormedSpace.exp_hasFPowerSeriesAt_zero
 -/
 
-#print exp_continuous /-
+#print NormedSpace.exp_continuous /-
 @[continuity]
-theorem exp_continuous : Continuous (exp 𝕂 : 𝔸 β†’ 𝔸) :=
+theorem NormedSpace.exp_continuous : Continuous (NormedSpace.exp 𝕂 : 𝔸 β†’ 𝔸) :=
   by
   rw [continuous_iff_continuousOn_univ, ← Metric.eball_top_eq_univ (0 : 𝔸), ←
-    expSeries_radius_eq_top 𝕂 𝔸]
-  exact continuousOn_exp
-#align exp_continuous exp_continuous
+    NormedSpace.expSeries_radius_eq_top 𝕂 𝔸]
+  exact NormedSpace.continuousOn_exp
+#align exp_continuous NormedSpace.exp_continuous
 -/
 
-#print exp_analytic /-
-theorem exp_analytic (x : 𝔸) : AnalyticAt 𝕂 (exp 𝕂) x :=
-  analyticAt_exp_of_mem_ball x ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
-#align exp_analytic exp_analytic
+#print NormedSpace.exp_analytic /-
+theorem NormedSpace.exp_analytic (x : 𝔸) : AnalyticAt 𝕂 (NormedSpace.exp 𝕂) x :=
+  NormedSpace.analyticAt_exp_of_mem_ball x
+    ((NormedSpace.expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
+#align exp_analytic NormedSpace.exp_analytic
 -/
 
-#print exp_add_of_commute /-
+#print NormedSpace.exp_add_of_commute /-
 /-- In a Banach-algebra `𝔸` over `𝕂 = ℝ` or `𝕂 = β„‚`, if `x` and `y` commute, then
 `exp 𝕂 (x+y) = (exp 𝕂 x) * (exp 𝕂 y)`. -/
-theorem exp_add_of_commute {x y : 𝔸} (hxy : Commute x y) : exp 𝕂 (x + y) = exp 𝕂 x * exp 𝕂 y :=
-  exp_add_of_commute_of_mem_ball hxy ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
-    ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
-#align exp_add_of_commute exp_add_of_commute
+theorem NormedSpace.exp_add_of_commute {x y : 𝔸} (hxy : Commute x y) :
+    NormedSpace.exp 𝕂 (x + y) = NormedSpace.exp 𝕂 x * NormedSpace.exp 𝕂 y :=
+  NormedSpace.exp_add_of_commute_of_mem_ball hxy
+    ((NormedSpace.expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
+    ((NormedSpace.expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
+#align exp_add_of_commute NormedSpace.exp_add_of_commute
 -/
 
 section
 
 variable (𝕂)
 
-#print invertibleExp /-
+#print NormedSpace.invertibleExp /-
 /-- `exp 𝕂 x` has explicit two-sided inverse `exp 𝕂 (-x)`. -/
-noncomputable def invertibleExp (x : 𝔸) : Invertible (exp 𝕂 x) :=
-  invertibleExpOfMemBall <| (expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _
-#align invertible_exp invertibleExp
+noncomputable def NormedSpace.invertibleExp (x : 𝔸) : Invertible (NormedSpace.exp 𝕂 x) :=
+  NormedSpace.invertibleExpOfMemBall <|
+    (NormedSpace.expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _
+#align invertible_exp NormedSpace.invertibleExp
 -/
 
-#print isUnit_exp /-
-theorem isUnit_exp (x : 𝔸) : IsUnit (exp 𝕂 x) :=
-  isUnit_exp_of_mem_ball <| (expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _
-#align is_unit_exp isUnit_exp
+#print NormedSpace.isUnit_exp /-
+theorem NormedSpace.isUnit_exp (x : 𝔸) : IsUnit (NormedSpace.exp 𝕂 x) :=
+  NormedSpace.isUnit_exp_of_mem_ball <|
+    (NormedSpace.expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _
+#align is_unit_exp NormedSpace.isUnit_exp
 -/
 
-#print invOf_exp /-
-theorem invOf_exp (x : 𝔸) [Invertible (exp 𝕂 x)] : β…Ÿ (exp 𝕂 x) = exp 𝕂 (-x) :=
-  invOf_exp_of_mem_ball <| (expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _
-#align inv_of_exp invOf_exp
+#print NormedSpace.invOf_exp /-
+theorem NormedSpace.invOf_exp (x : 𝔸) [Invertible (NormedSpace.exp 𝕂 x)] :
+    β…Ÿ (NormedSpace.exp 𝕂 x) = NormedSpace.exp 𝕂 (-x) :=
+  NormedSpace.invOf_exp_of_mem_ball <|
+    (NormedSpace.expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _
+#align inv_of_exp NormedSpace.invOf_exp
 -/
 
 #print Ring.inverse_exp /-
-theorem Ring.inverse_exp (x : 𝔸) : Ring.inverse (exp 𝕂 x) = exp 𝕂 (-x) :=
-  letI := invertibleExp 𝕂 x
+theorem Ring.inverse_exp (x : 𝔸) : Ring.inverse (NormedSpace.exp 𝕂 x) = NormedSpace.exp 𝕂 (-x) :=
+  letI := NormedSpace.invertibleExp 𝕂 x
   Ring.inverse_invertible _
 #align ring.inverse_exp Ring.inverse_exp
 -/
 
-#print exp_mem_unitary_of_mem_skewAdjoint /-
-theorem exp_mem_unitary_of_mem_skewAdjoint [StarRing 𝔸] [ContinuousStar 𝔸] {x : 𝔸}
-    (h : x ∈ skewAdjoint 𝔸) : exp 𝕂 x ∈ unitary 𝔸 := by
-  rw [unitary.mem_iff, star_exp, skew_adjoint.mem_iff.mp h, ←
-    exp_add_of_commute (Commute.refl x).neg_left, ← exp_add_of_commute (Commute.refl x).neg_right,
-    add_left_neg, add_right_neg, exp_zero, and_self_iff]
-#align exp_mem_unitary_of_mem_skew_adjoint exp_mem_unitary_of_mem_skewAdjoint
+#print NormedSpace.exp_mem_unitary_of_mem_skewAdjoint /-
+theorem NormedSpace.exp_mem_unitary_of_mem_skewAdjoint [StarRing 𝔸] [ContinuousStar 𝔸] {x : 𝔸}
+    (h : x ∈ skewAdjoint 𝔸) : NormedSpace.exp 𝕂 x ∈ unitary 𝔸 := by
+  rw [unitary.mem_iff, NormedSpace.star_exp, skew_adjoint.mem_iff.mp h, ←
+    NormedSpace.exp_add_of_commute (Commute.refl x).neg_left, ←
+    NormedSpace.exp_add_of_commute (Commute.refl x).neg_right, add_left_neg, add_right_neg,
+    NormedSpace.exp_zero, and_self_iff]
+#align exp_mem_unitary_of_mem_skew_adjoint NormedSpace.exp_mem_unitary_of_mem_skewAdjoint
 -/
 
 end
 
-#print exp_sum_of_commute /-
+#print NormedSpace.exp_sum_of_commute /-
 /-- In a Banach-algebra `𝔸` over `𝕂 = ℝ` or `𝕂 = β„‚`, if a family of elements `f i` mutually
 commute then `exp 𝕂 (βˆ‘ i, f i) = ∏ i, exp 𝕂 (f i)`. -/
-theorem exp_sum_of_commute {ΞΉ} (s : Finset ΞΉ) (f : ΞΉ β†’ 𝔸)
+theorem NormedSpace.exp_sum_of_commute {ΞΉ} (s : Finset ΞΉ) (f : ΞΉ β†’ 𝔸)
     (h : (s : Set ΞΉ).Pairwise fun i j => Commute (f i) (f j)) :
-    exp 𝕂 (βˆ‘ i in s, f i) =
-      s.noncommProd (fun i => exp 𝕂 (f i)) fun i hi j hj _ => (h.of_refl hi hj).exp 𝕂 :=
+    NormedSpace.exp 𝕂 (βˆ‘ i in s, f i) =
+      s.noncommProd (fun i => NormedSpace.exp 𝕂 (f i)) fun i hi j hj _ => (h.of_refl hi hj).exp 𝕂 :=
   by
   classical
   induction' s using Finset.induction_on with a s ha ih
   Β· simp
-  rw [Finset.noncommProd_insert_of_not_mem _ _ _ _ ha, Finset.sum_insert ha, exp_add_of_commute,
-    ih (h.mono <| Finset.subset_insert _ _)]
+  rw [Finset.noncommProd_insert_of_not_mem _ _ _ _ ha, Finset.sum_insert ha,
+    NormedSpace.exp_add_of_commute, ih (h.mono <| Finset.subset_insert _ _)]
   refine' Commute.sum_right _ _ _ fun i hi => _
   exact h.of_refl (Finset.mem_insert_self _ _) (Finset.mem_insert_of_mem hi)
-#align exp_sum_of_commute exp_sum_of_commute
+#align exp_sum_of_commute NormedSpace.exp_sum_of_commute
 -/
 
-#print exp_nsmul /-
-theorem exp_nsmul (n : β„•) (x : 𝔸) : exp 𝕂 (n β€’ x) = exp 𝕂 x ^ n :=
+#print NormedSpace.exp_nsmul /-
+theorem NormedSpace.exp_nsmul (n : β„•) (x : 𝔸) :
+    NormedSpace.exp 𝕂 (n β€’ x) = NormedSpace.exp 𝕂 x ^ n :=
   by
   induction' n with n ih
-  Β· rw [zero_smul, pow_zero, exp_zero]
-  Β· rw [succ_nsmul, pow_succ, exp_add_of_commute ((Commute.refl x).smul_right n), ih]
-#align exp_nsmul exp_nsmul
+  Β· rw [zero_smul, pow_zero, NormedSpace.exp_zero]
+  Β· rw [succ_nsmul, pow_succ, NormedSpace.exp_add_of_commute ((Commute.refl x).smul_right n), ih]
+#align exp_nsmul NormedSpace.exp_nsmul
 -/
 
 variable (𝕂)
 
-#print map_exp /-
+#print NormedSpace.map_exp /-
 /-- Any continuous ring homomorphism commutes with `exp`. -/
-theorem map_exp {F} [RingHomClass F 𝔸 𝔹] (f : F) (hf : Continuous f) (x : 𝔸) :
-    f (exp 𝕂 x) = exp 𝕂 (f x) :=
-  map_exp_of_mem_ball f hf x <| (expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _
-#align map_exp map_exp
+theorem NormedSpace.map_exp {F} [RingHomClass F 𝔸 𝔹] (f : F) (hf : Continuous f) (x : 𝔸) :
+    f (NormedSpace.exp 𝕂 x) = NormedSpace.exp 𝕂 (f x) :=
+  NormedSpace.map_exp_of_mem_ball f hf x <|
+    (NormedSpace.expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _
+#align map_exp NormedSpace.map_exp
 -/
 
-#print exp_smul /-
-theorem exp_smul {G} [Monoid G] [MulSemiringAction G 𝔸] [ContinuousConstSMul G 𝔸] (g : G) (x : 𝔸) :
-    exp 𝕂 (g β€’ x) = g β€’ exp 𝕂 x :=
-  (map_exp 𝕂 (MulSemiringAction.toRingHom G 𝔸 g) (continuous_const_smul _) x).symm
-#align exp_smul exp_smul
+#print NormedSpace.exp_smul /-
+theorem NormedSpace.exp_smul {G} [Monoid G] [MulSemiringAction G 𝔸] [ContinuousConstSMul G 𝔸]
+    (g : G) (x : 𝔸) : NormedSpace.exp 𝕂 (g β€’ x) = g β€’ NormedSpace.exp 𝕂 x :=
+  (NormedSpace.map_exp 𝕂 (MulSemiringAction.toRingHom G 𝔸 g) (continuous_const_smul _) x).symm
+#align exp_smul NormedSpace.exp_smul
 -/
 
-#print exp_units_conj /-
-theorem exp_units_conj (y : 𝔸ˣ) (x : 𝔸) : exp 𝕂 (y * x * ↑y⁻¹ : 𝔸) = y * exp 𝕂 x * ↑y⁻¹ :=
-  exp_smul _ (ConjAct.toConjAct y) x
-#align exp_units_conj exp_units_conj
+#print NormedSpace.exp_units_conj /-
+theorem NormedSpace.exp_units_conj (y : 𝔸ˣ) (x : 𝔸) :
+    NormedSpace.exp 𝕂 (y * x * ↑y⁻¹ : 𝔸) = y * NormedSpace.exp 𝕂 x * ↑y⁻¹ :=
+  NormedSpace.exp_smul _ (ConjAct.toConjAct y) x
+#align exp_units_conj NormedSpace.exp_units_conj
 -/
 
-#print exp_units_conj' /-
-theorem exp_units_conj' (y : 𝔸ˣ) (x : 𝔸) : exp 𝕂 (↑y⁻¹ * x * y) = ↑y⁻¹ * exp 𝕂 x * y :=
-  exp_units_conj _ _ _
-#align exp_units_conj' exp_units_conj'
+#print NormedSpace.exp_units_conj' /-
+theorem NormedSpace.exp_units_conj' (y : 𝔸ˣ) (x : 𝔸) :
+    NormedSpace.exp 𝕂 (↑y⁻¹ * x * y) = ↑y⁻¹ * NormedSpace.exp 𝕂 x * y :=
+  NormedSpace.exp_units_conj _ _ _
+#align exp_units_conj' NormedSpace.exp_units_conj'
 -/
 
 #print Prod.fst_exp /-
 @[simp]
-theorem Prod.fst_exp [CompleteSpace 𝔹] (x : 𝔸 Γ— 𝔹) : (exp 𝕂 x).fst = exp 𝕂 x.fst :=
-  map_exp _ (RingHom.fst 𝔸 𝔹) continuous_fst x
+theorem Prod.fst_exp [CompleteSpace 𝔹] (x : 𝔸 Γ— 𝔹) :
+    (NormedSpace.exp 𝕂 x).fst = NormedSpace.exp 𝕂 x.fst :=
+  NormedSpace.map_exp _ (RingHom.fst 𝔸 𝔹) continuous_fst x
 #align prod.fst_exp Prod.fst_exp
 -/
 
 #print Prod.snd_exp /-
 @[simp]
-theorem Prod.snd_exp [CompleteSpace 𝔹] (x : 𝔸 Γ— 𝔹) : (exp 𝕂 x).snd = exp 𝕂 x.snd :=
-  map_exp _ (RingHom.snd 𝔸 𝔹) continuous_snd x
+theorem Prod.snd_exp [CompleteSpace 𝔹] (x : 𝔸 Γ— 𝔹) :
+    (NormedSpace.exp 𝕂 x).snd = NormedSpace.exp 𝕂 x.snd :=
+  NormedSpace.map_exp _ (RingHom.snd 𝔸 𝔹) continuous_snd x
 #align prod.snd_exp Prod.snd_exp
 -/
 
@@ -697,16 +750,16 @@ theorem Prod.snd_exp [CompleteSpace 𝔹] (x : 𝔸 Γ— 𝔹) : (exp 𝕂 x).snd
 @[simp]
 theorem Pi.exp_apply {ΞΉ : Type _} {𝔸 : ΞΉ β†’ Type _} [Fintype ΞΉ] [βˆ€ i, NormedRing (𝔸 i)]
     [βˆ€ i, NormedAlgebra 𝕂 (𝔸 i)] [βˆ€ i, CompleteSpace (𝔸 i)] (x : βˆ€ i, 𝔸 i) (i : ΞΉ) :
-    exp 𝕂 x i = exp 𝕂 (x i) :=
+    NormedSpace.exp 𝕂 x i = NormedSpace.exp 𝕂 (x i) :=
   letI : NormedAlgebra 𝕂 (βˆ€ i, 𝔸 i) := Pi.normedAlgebra _
-  map_exp _ (Pi.evalRingHom 𝔸 i) (continuous_apply _) x
+  NormedSpace.map_exp _ (Pi.evalRingHom 𝔸 i) (continuous_apply _) x
 #align pi.exp_apply Pi.exp_apply
 -/
 
 #print Pi.exp_def /-
 theorem Pi.exp_def {ΞΉ : Type _} {𝔸 : ΞΉ β†’ Type _} [Fintype ΞΉ] [βˆ€ i, NormedRing (𝔸 i)]
     [βˆ€ i, NormedAlgebra 𝕂 (𝔸 i)] [βˆ€ i, CompleteSpace (𝔸 i)] (x : βˆ€ i, 𝔸 i) :
-    exp 𝕂 x = fun i => exp 𝕂 (x i) :=
+    NormedSpace.exp 𝕂 x = fun i => NormedSpace.exp 𝕂 (x i) :=
   funext <| Pi.exp_apply 𝕂 x
 #align pi.exp_def Pi.exp_def
 -/
@@ -714,20 +767,24 @@ theorem Pi.exp_def {ΞΉ : Type _} {𝔸 : ΞΉ β†’ Type _} [Fintype ΞΉ] [βˆ€ i, Nor
 #print Function.update_exp /-
 theorem Function.update_exp {ΞΉ : Type _} {𝔸 : ΞΉ β†’ Type _} [Fintype ΞΉ] [DecidableEq ΞΉ]
     [βˆ€ i, NormedRing (𝔸 i)] [βˆ€ i, NormedAlgebra 𝕂 (𝔸 i)] [βˆ€ i, CompleteSpace (𝔸 i)] (x : βˆ€ i, 𝔸 i)
-    (j : ΞΉ) (xj : 𝔸 j) : Function.update (exp 𝕂 x) j (exp 𝕂 xj) = exp 𝕂 (Function.update x j xj) :=
+    (j : ΞΉ) (xj : 𝔸 j) :
+    Function.update (NormedSpace.exp 𝕂 x) j (NormedSpace.exp 𝕂 xj) =
+      NormedSpace.exp 𝕂 (Function.update x j xj) :=
   by
   ext i
   simp_rw [Pi.exp_def]
-  exact (Function.apply_update (fun i => exp 𝕂) x j xj i).symm
+  exact (Function.apply_update (fun i => NormedSpace.exp 𝕂) x j xj i).symm
 #align function.update_exp Function.update_exp
 -/
 
 end CompleteAlgebra
 
-#print algebraMap_exp_comm /-
-theorem algebraMap_exp_comm (x : 𝕂) : algebraMap 𝕂 𝔸 (exp 𝕂 x) = exp 𝕂 (algebraMap 𝕂 𝔸 x) :=
-  algebraMap_exp_comm_of_mem_ball x <| (expSeries_radius_eq_top 𝕂 𝕂).symm β–Έ edist_lt_top _ _
-#align algebra_map_exp_comm algebraMap_exp_comm
+#print NormedSpace.algebraMap_exp_comm /-
+theorem NormedSpace.algebraMap_exp_comm (x : 𝕂) :
+    algebraMap 𝕂 𝔸 (NormedSpace.exp 𝕂 x) = NormedSpace.exp 𝕂 (algebraMap 𝕂 𝔸 x) :=
+  NormedSpace.algebraMap_exp_comm_of_mem_ball x <|
+    (NormedSpace.expSeries_radius_eq_top 𝕂 𝕂).symm β–Έ edist_lt_top _ _
+#align algebra_map_exp_comm NormedSpace.algebraMap_exp_comm
 -/
 
 end AnyAlgebra
@@ -738,54 +795,60 @@ variable {𝕂 𝔸 : Type _} [IsROrC 𝕂] [NormedDivisionRing 𝔸] [NormedAlg
 
 variable (𝕂)
 
-#print norm_expSeries_div_summable /-
-theorem norm_expSeries_div_summable (x : 𝔸) : Summable fun n => β€–x ^ n / n !β€– :=
-  norm_expSeries_div_summable_of_mem_ball 𝕂 x
-    ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
-#align norm_exp_series_div_summable norm_expSeries_div_summable
+#print NormedSpace.norm_expSeries_div_summable /-
+theorem NormedSpace.norm_expSeries_div_summable (x : 𝔸) : Summable fun n => β€–x ^ n / n !β€– :=
+  NormedSpace.norm_expSeries_div_summable_of_mem_ball 𝕂 x
+    ((NormedSpace.expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
+#align norm_exp_series_div_summable NormedSpace.norm_expSeries_div_summable
 -/
 
 variable [CompleteSpace 𝔸]
 
-#print expSeries_div_summable /-
-theorem expSeries_div_summable (x : 𝔸) : Summable fun n => x ^ n / n ! :=
-  Summable.of_norm (norm_expSeries_div_summable 𝕂 x)
-#align exp_series_div_summable expSeries_div_summable
+#print NormedSpace.expSeries_div_summable /-
+theorem NormedSpace.expSeries_div_summable (x : 𝔸) : Summable fun n => x ^ n / n ! :=
+  Summable.of_norm (NormedSpace.norm_expSeries_div_summable 𝕂 x)
+#align exp_series_div_summable NormedSpace.expSeries_div_summable
 -/
 
-#print expSeries_div_hasSum_exp /-
-theorem expSeries_div_hasSum_exp (x : 𝔸) : HasSum (fun n => x ^ n / n !) (exp 𝕂 x) :=
-  expSeries_div_hasSum_exp_of_mem_ball 𝕂 x ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
-#align exp_series_div_has_sum_exp expSeries_div_hasSum_exp
+#print NormedSpace.expSeries_div_hasSum_exp /-
+theorem NormedSpace.expSeries_div_hasSum_exp (x : 𝔸) :
+    HasSum (fun n => x ^ n / n !) (NormedSpace.exp 𝕂 x) :=
+  NormedSpace.expSeries_div_hasSum_exp_of_mem_ball 𝕂 x
+    ((NormedSpace.expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
+#align exp_series_div_has_sum_exp NormedSpace.expSeries_div_hasSum_exp
 -/
 
 variable {𝕂}
 
-#print exp_neg /-
-theorem exp_neg (x : 𝔸) : exp 𝕂 (-x) = (exp 𝕂 x)⁻¹ :=
-  exp_neg_of_mem_ball <| (expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _
-#align exp_neg exp_neg
+#print NormedSpace.exp_neg /-
+theorem NormedSpace.exp_neg (x : 𝔸) : NormedSpace.exp 𝕂 (-x) = (NormedSpace.exp 𝕂 x)⁻¹ :=
+  NormedSpace.exp_neg_of_mem_ball <|
+    (NormedSpace.expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _
+#align exp_neg NormedSpace.exp_neg
 -/
 
-#print exp_zsmul /-
-theorem exp_zsmul (z : β„€) (x : 𝔸) : exp 𝕂 (z β€’ x) = exp 𝕂 x ^ z :=
+#print NormedSpace.exp_zsmul /-
+theorem NormedSpace.exp_zsmul (z : β„€) (x : 𝔸) :
+    NormedSpace.exp 𝕂 (z β€’ x) = NormedSpace.exp 𝕂 x ^ z :=
   by
   obtain ⟨n, rfl | rfl⟩ := z.eq_coe_or_neg
-  Β· rw [zpow_ofNat, coe_nat_zsmul, exp_nsmul]
-  Β· rw [zpow_neg, zpow_ofNat, neg_smul, exp_neg, coe_nat_zsmul, exp_nsmul]
-#align exp_zsmul exp_zsmul
+  Β· rw [zpow_ofNat, coe_nat_zsmul, NormedSpace.exp_nsmul]
+  Β· rw [zpow_neg, zpow_ofNat, neg_smul, NormedSpace.exp_neg, coe_nat_zsmul, NormedSpace.exp_nsmul]
+#align exp_zsmul NormedSpace.exp_zsmul
 -/
 
-#print exp_conj /-
-theorem exp_conj (y : 𝔸) (x : 𝔸) (hy : y β‰  0) : exp 𝕂 (y * x * y⁻¹) = y * exp 𝕂 x * y⁻¹ :=
-  exp_units_conj _ (Units.mk0 y hy) x
-#align exp_conj exp_conj
+#print NormedSpace.exp_conj /-
+theorem NormedSpace.exp_conj (y : 𝔸) (x : 𝔸) (hy : y β‰  0) :
+    NormedSpace.exp 𝕂 (y * x * y⁻¹) = y * NormedSpace.exp 𝕂 x * y⁻¹ :=
+  NormedSpace.exp_units_conj _ (Units.mk0 y hy) x
+#align exp_conj NormedSpace.exp_conj
 -/
 
-#print exp_conj' /-
-theorem exp_conj' (y : 𝔸) (x : 𝔸) (hy : y β‰  0) : exp 𝕂 (y⁻¹ * x * y) = y⁻¹ * exp 𝕂 x * y :=
-  exp_units_conj' _ (Units.mk0 y hy) x
-#align exp_conj' exp_conj'
+#print NormedSpace.exp_conj' /-
+theorem NormedSpace.exp_conj' (y : 𝔸) (x : 𝔸) (hy : y β‰  0) :
+    NormedSpace.exp 𝕂 (y⁻¹ * x * y) = y⁻¹ * NormedSpace.exp 𝕂 x * y :=
+  NormedSpace.exp_units_conj' _ (Units.mk0 y hy) x
+#align exp_conj' NormedSpace.exp_conj'
 -/
 
 end DivisionAlgebra
@@ -794,22 +857,25 @@ section CommAlgebra
 
 variable {𝕂 𝔸 : Type _} [IsROrC 𝕂] [NormedCommRing 𝔸] [NormedAlgebra 𝕂 𝔸] [CompleteSpace 𝔸]
 
-#print exp_add /-
+#print NormedSpace.exp_add /-
 /-- In a commutative Banach-algebra `𝔸` over `𝕂 = ℝ` or `𝕂 = β„‚`,
 `exp 𝕂 (x+y) = (exp 𝕂 x) * (exp 𝕂 y)`. -/
-theorem exp_add {x y : 𝔸} : exp 𝕂 (x + y) = exp 𝕂 x * exp 𝕂 y :=
-  exp_add_of_mem_ball ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
-    ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
-#align exp_add exp_add
+theorem NormedSpace.exp_add {x y : 𝔸} :
+    NormedSpace.exp 𝕂 (x + y) = NormedSpace.exp 𝕂 x * NormedSpace.exp 𝕂 y :=
+  NormedSpace.exp_add_of_mem_ball
+    ((NormedSpace.expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
+    ((NormedSpace.expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
+#align exp_add NormedSpace.exp_add
 -/
 
-#print exp_sum /-
+#print NormedSpace.exp_sum /-
 /-- A version of `exp_sum_of_commute` for a commutative Banach-algebra. -/
-theorem exp_sum {ΞΉ} (s : Finset ΞΉ) (f : ΞΉ β†’ 𝔸) : exp 𝕂 (βˆ‘ i in s, f i) = ∏ i in s, exp 𝕂 (f i) :=
+theorem NormedSpace.exp_sum {ΞΉ} (s : Finset ΞΉ) (f : ΞΉ β†’ 𝔸) :
+    NormedSpace.exp 𝕂 (βˆ‘ i in s, f i) = ∏ i in s, NormedSpace.exp 𝕂 (f i) :=
   by
-  rw [exp_sum_of_commute, Finset.noncommProd_eq_prod]
+  rw [NormedSpace.exp_sum_of_commute, Finset.noncommProd_eq_prod]
   exact fun i hi j hj _ => Commute.all _ _
-#align exp_sum exp_sum
+#align exp_sum NormedSpace.exp_sum
 -/
 
 end CommAlgebra
@@ -823,39 +889,40 @@ section ScalarTower
 variable (𝕂 𝕂' 𝔸 : Type _) [Field 𝕂] [Field 𝕂'] [Ring 𝔸] [Algebra 𝕂 𝔸] [Algebra 𝕂' 𝔸]
   [TopologicalSpace 𝔸] [TopologicalRing 𝔸]
 
-#print expSeries_eq_expSeries /-
+#print NormedSpace.expSeries_eq_expSeries /-
 /-- If a normed ring `𝔸` is a normed algebra over two fields, then they define the same
 `exp_series` on `𝔸`. -/
-theorem expSeries_eq_expSeries (n : β„•) (x : 𝔸) :
-    (expSeries 𝕂 𝔸 n fun _ => x) = expSeries 𝕂' 𝔸 n fun _ => x := by
-  rw [expSeries_apply_eq, expSeries_apply_eq, inv_nat_cast_smul_eq 𝕂 𝕂']
-#align exp_series_eq_exp_series expSeries_eq_expSeries
+theorem NormedSpace.expSeries_eq_expSeries (n : β„•) (x : 𝔸) :
+    (NormedSpace.expSeries 𝕂 𝔸 n fun _ => x) = NormedSpace.expSeries 𝕂' 𝔸 n fun _ => x := by
+  rw [NormedSpace.expSeries_apply_eq, NormedSpace.expSeries_apply_eq, inv_nat_cast_smul_eq 𝕂 𝕂']
+#align exp_series_eq_exp_series NormedSpace.expSeries_eq_expSeries
 -/
 
-#print exp_eq_exp /-
+#print NormedSpace.exp_eq_exp /-
 /-- If a normed ring `𝔸` is a normed algebra over two fields, then they define the same
 exponential function on `𝔸`. -/
-theorem exp_eq_exp : (exp 𝕂 : 𝔸 β†’ 𝔸) = exp 𝕂' :=
+theorem NormedSpace.exp_eq_exp : (NormedSpace.exp 𝕂 : 𝔸 β†’ 𝔸) = NormedSpace.exp 𝕂' :=
   by
   ext
-  rw [exp, exp]
+  rw [NormedSpace.exp, NormedSpace.exp]
   refine' tsum_congr fun n => _
-  rw [expSeries_eq_expSeries 𝕂 𝕂' 𝔸 n x]
-#align exp_eq_exp exp_eq_exp
+  rw [NormedSpace.expSeries_eq_expSeries 𝕂 𝕂' 𝔸 n x]
+#align exp_eq_exp NormedSpace.exp_eq_exp
 -/
 
-#print exp_ℝ_β„‚_eq_exp_β„‚_β„‚ /-
-theorem exp_ℝ_β„‚_eq_exp_β„‚_β„‚ : (exp ℝ : β„‚ β†’ β„‚) = exp β„‚ :=
-  exp_eq_exp ℝ β„‚ β„‚
-#align exp_ℝ_β„‚_eq_exp_β„‚_β„‚ exp_ℝ_β„‚_eq_exp_β„‚_β„‚
+#print NormedSpace.exp_ℝ_β„‚_eq_exp_β„‚_β„‚ /-
+theorem NormedSpace.exp_ℝ_β„‚_eq_exp_β„‚_β„‚ : (NormedSpace.exp ℝ : β„‚ β†’ β„‚) = NormedSpace.exp β„‚ :=
+  NormedSpace.exp_eq_exp ℝ β„‚ β„‚
+#align exp_ℝ_β„‚_eq_exp_β„‚_β„‚ NormedSpace.exp_ℝ_β„‚_eq_exp_β„‚_β„‚
 -/
 
-#print of_real_exp_ℝ_ℝ /-
+#print NormedSpace.of_real_exp_ℝ_ℝ /-
 /-- A version of `complex.of_real_exp` for `exp` instead of `complex.exp` -/
 @[simp, norm_cast]
-theorem of_real_exp_ℝ_ℝ (r : ℝ) : ↑(exp ℝ r) = exp β„‚ (r : β„‚) :=
-  (map_exp ℝ (algebraMap ℝ β„‚) (continuous_algebraMap _ _) r).trans (congr_fun exp_ℝ_β„‚_eq_exp_β„‚_β„‚ _)
-#align of_real_exp_ℝ_ℝ of_real_exp_ℝ_ℝ
+theorem NormedSpace.of_real_exp_ℝ_ℝ (r : ℝ) : ↑(NormedSpace.exp ℝ r) = NormedSpace.exp β„‚ (r : β„‚) :=
+  (NormedSpace.map_exp ℝ (algebraMap ℝ β„‚) (continuous_algebraMap _ _) r).trans
+    (congr_fun NormedSpace.exp_ℝ_β„‚_eq_exp_β„‚_β„‚ _)
+#align of_real_exp_ℝ_ℝ NormedSpace.of_real_exp_ℝ_ℝ
 -/
 
 end ScalarTower
Diff
@@ -261,7 +261,7 @@ variable [CompleteSpace 𝔸]
 theorem expSeries_summable_of_mem_ball (x : 𝔸)
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     Summable fun n => expSeries 𝕂 𝔸 n fun _ => x :=
-  summable_of_summable_norm (norm_expSeries_summable_of_mem_ball x hx)
+  Summable.of_norm (norm_expSeries_summable_of_mem_ball x hx)
 #align exp_series_summable_of_mem_ball expSeries_summable_of_mem_ball
 -/
 
@@ -269,7 +269,7 @@ theorem expSeries_summable_of_mem_ball (x : 𝔸)
 theorem expSeries_summable_of_mem_ball' (x : 𝔸)
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     Summable fun n => (n !⁻¹ : 𝕂) β€’ x ^ n :=
-  summable_of_summable_norm (norm_expSeries_summable_of_mem_ball' x hx)
+  Summable.of_norm (norm_expSeries_summable_of_mem_ball' x hx)
 #align exp_series_summable_of_mem_ball' expSeries_summable_of_mem_ball'
 -/
 
@@ -428,7 +428,7 @@ theorem norm_expSeries_div_summable_of_mem_ball (x : 𝔸)
 #print expSeries_div_summable_of_mem_ball /-
 theorem expSeries_div_summable_of_mem_ball [CompleteSpace 𝔸] (x : 𝔸)
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : Summable fun n => x ^ n / n ! :=
-  summable_of_summable_norm (norm_expSeries_div_summable_of_mem_ball 𝕂 x hx)
+  Summable.of_norm (norm_expSeries_div_summable_of_mem_ball 𝕂 x hx)
 #align exp_series_div_summable_of_mem_ball expSeries_div_summable_of_mem_ball
 -/
 
@@ -485,7 +485,7 @@ has an infinite radius of convergence. -/
 theorem expSeries_radius_eq_top : (expSeries 𝕂 𝔸).radius = ∞ :=
   by
   refine' (expSeries 𝕂 𝔸).radius_eq_top_of_summable_norm fun r => _
-  refine' summable_of_norm_bounded_eventually _ (Real.summable_pow_div_factorial r) _
+  refine' Summable.of_norm_bounded_eventually _ (Real.summable_pow_div_factorial r) _
   filter_upwards [eventually_cofinite_ne 0] with n hn
   rw [norm_mul, norm_norm (expSeries 𝕂 𝔸 n), expSeries, norm_smul, norm_inv, norm_pow,
     NNReal.norm_eq, norm_nat_cast, mul_comm, ← mul_assoc, ← div_eq_mul_inv]
@@ -523,13 +523,13 @@ variable [CompleteSpace 𝔸]
 
 #print expSeries_summable /-
 theorem expSeries_summable (x : 𝔸) : Summable fun n => expSeries 𝕂 𝔸 n fun _ => x :=
-  summable_of_summable_norm (norm_expSeries_summable x)
+  Summable.of_norm (norm_expSeries_summable x)
 #align exp_series_summable expSeries_summable
 -/
 
 #print expSeries_summable' /-
 theorem expSeries_summable' (x : 𝔸) : Summable fun n => (n !⁻¹ : 𝕂) β€’ x ^ n :=
-  summable_of_summable_norm (norm_expSeries_summable' x)
+  Summable.of_norm (norm_expSeries_summable' x)
 #align exp_series_summable' expSeries_summable'
 -/
 
@@ -749,7 +749,7 @@ variable [CompleteSpace 𝔸]
 
 #print expSeries_div_summable /-
 theorem expSeries_div_summable (x : 𝔸) : Summable fun n => x ^ n / n ! :=
-  summable_of_summable_norm (norm_expSeries_div_summable 𝕂 x)
+  Summable.of_norm (norm_expSeries_div_summable 𝕂 x)
 #align exp_series_div_summable expSeries_div_summable
 -/
 
Diff
@@ -3,12 +3,12 @@ Copyright (c) 2021 Anatole Dedecker. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anatole Dedecker, Eric Wieser
 -/
-import Mathbin.Analysis.Analytic.Basic
-import Mathbin.Analysis.Complex.Basic
-import Mathbin.Analysis.Normed.Field.InfiniteSum
-import Mathbin.Data.Nat.Choose.Cast
-import Mathbin.Data.Finset.NoncommProd
-import Mathbin.Topology.Algebra.Algebra
+import Analysis.Analytic.Basic
+import Analysis.Complex.Basic
+import Analysis.Normed.Field.InfiniteSum
+import Data.Nat.Choose.Cast
+import Data.Finset.NoncommProd
+import Topology.Algebra.Algebra
 
 #align_import analysis.normed_space.exponential from "leanprover-community/mathlib"@"af471b9e3ce868f296626d33189b4ce730fa4c00"
 
Diff
@@ -351,7 +351,7 @@ noncomputable def invertibleExpOfMemBall [CharZero 𝕂] {x : 𝔸}
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : Invertible (exp 𝕂 x)
     where
   invOf := exp 𝕂 (-x)
-  invOf_mul_self :=
+  invOf_hMul_self :=
     by
     have hnx : -x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius :=
       by
@@ -359,7 +359,7 @@ noncomputable def invertibleExpOfMemBall [CharZero 𝕂] {x : 𝔸}
       exact hx
     rw [← exp_add_of_commute_of_mem_ball (Commute.neg_left <| Commute.refl x) hnx hx, neg_add_self,
       exp_zero]
-  mul_invOf_self :=
+  hMul_invOf_self :=
     by
     have hnx : -x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius :=
       by
Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2021 Anatole Dedecker. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anatole Dedecker, Eric Wieser
-
-! This file was ported from Lean 3 source module analysis.normed_space.exponential
-! leanprover-community/mathlib commit af471b9e3ce868f296626d33189b4ce730fa4c00
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Analysis.Analytic.Basic
 import Mathbin.Analysis.Complex.Basic
@@ -15,6 +10,8 @@ import Mathbin.Data.Nat.Choose.Cast
 import Mathbin.Data.Finset.NoncommProd
 import Mathbin.Topology.Algebra.Algebra
 
+#align_import analysis.normed_space.exponential from "leanprover-community/mathlib"@"af471b9e3ce868f296626d33189b4ce730fa4c00"
+
 /-!
 # Exponential in a Banach algebra
 
Diff
@@ -102,14 +102,18 @@ noncomputable def exp (x : 𝔸) : 𝔸 :=
 
 variable {𝕂}
 
+#print expSeries_apply_eq /-
 theorem expSeries_apply_eq (x : 𝔸) (n : β„•) : (expSeries 𝕂 𝔸 n fun _ => x) = (n !⁻¹ : 𝕂) β€’ x ^ n :=
   by simp [expSeries]
 #align exp_series_apply_eq expSeries_apply_eq
+-/
 
+#print expSeries_apply_eq' /-
 theorem expSeries_apply_eq' (x : 𝔸) :
     (fun n => expSeries 𝕂 𝔸 n fun _ => x) = fun n => (n !⁻¹ : 𝕂) β€’ x ^ n :=
   funext (expSeries_apply_eq x)
 #align exp_series_apply_eq' expSeries_apply_eq'
+-/
 
 #print expSeries_sum_eq /-
 theorem expSeries_sum_eq (x : 𝔸) : (expSeries 𝕂 𝔸).Sum x = βˆ‘' n : β„•, (n !⁻¹ : 𝕂) β€’ x ^ n :=
@@ -117,10 +121,13 @@ theorem expSeries_sum_eq (x : 𝔸) : (expSeries 𝕂 𝔸).Sum x = βˆ‘' n : β„•
 #align exp_series_sum_eq expSeries_sum_eq
 -/
 
+#print exp_eq_tsum /-
 theorem exp_eq_tsum : exp 𝕂 = fun x : 𝔸 => βˆ‘' n : β„•, (n !⁻¹ : 𝕂) β€’ x ^ n :=
   funext expSeries_sum_eq
 #align exp_eq_tsum exp_eq_tsum
+-/
 
+#print expSeries_apply_zero /-
 theorem expSeries_apply_zero (n : β„•) : (expSeries 𝕂 𝔸 n fun _ => (0 : 𝔸)) = Pi.single 0 1 n :=
   by
   rw [expSeries_apply_eq]
@@ -128,21 +135,28 @@ theorem expSeries_apply_zero (n : β„•) : (expSeries 𝕂 𝔸 n fun _ => (0 : 
   Β· rw [pow_zero, Nat.factorial_zero, Nat.cast_one, inv_one, one_smul, Pi.single_eq_same]
   Β· rw [zero_pow (Nat.succ_pos _), smul_zero, Pi.single_eq_of_ne n.succ_ne_zero]
 #align exp_series_apply_zero expSeries_apply_zero
+-/
 
+#print exp_zero /-
 @[simp]
 theorem exp_zero [T2Space 𝔸] : exp 𝕂 (0 : 𝔸) = 1 := by
   simp_rw [exp_eq_tsum, ← expSeries_apply_eq, expSeries_apply_zero, tsum_pi_single]
 #align exp_zero exp_zero
+-/
 
+#print exp_op /-
 @[simp]
 theorem exp_op [T2Space 𝔸] (x : 𝔸) : exp 𝕂 (MulOpposite.op x) = MulOpposite.op (exp 𝕂 x) := by
   simp_rw [exp, expSeries_sum_eq, ← MulOpposite.op_pow, ← MulOpposite.op_smul, tsum_op]
 #align exp_op exp_op
+-/
 
+#print exp_unop /-
 @[simp]
 theorem exp_unop [T2Space 𝔸] (x : 𝔸ᡐᡒᡖ) : exp 𝕂 (MulOpposite.unop x) = MulOpposite.unop (exp 𝕂 x) :=
   by simp_rw [exp, expSeries_sum_eq, ← MulOpposite.unop_pow, ← MulOpposite.unop_smul, tsum_unop]
 #align exp_unop exp_unop
+-/
 
 #print star_exp /-
 theorem star_exp [T2Space 𝔸] [StarRing 𝔸] [ContinuousStar 𝔸] (x : 𝔸) :
@@ -160,19 +174,25 @@ theorem IsSelfAdjoint.exp [T2Space 𝔸] [StarRing 𝔸] [ContinuousStar 𝔸] {
 #align is_self_adjoint.exp IsSelfAdjoint.exp
 -/
 
+#print Commute.exp_right /-
 theorem Commute.exp_right [T2Space 𝔸] {x y : 𝔸} (h : Commute x y) : Commute x (exp 𝕂 y) :=
   by
   rw [exp_eq_tsum]
   exact Commute.tsum_right x fun n => (h.pow_right n).smul_right _
 #align commute.exp_right Commute.exp_right
+-/
 
+#print Commute.exp_left /-
 theorem Commute.exp_left [T2Space 𝔸] {x y : 𝔸} (h : Commute x y) : Commute (exp 𝕂 x) y :=
   (h.symm.exp_right 𝕂).symm
 #align commute.exp_left Commute.exp_left
+-/
 
+#print Commute.exp /-
 theorem Commute.exp [T2Space 𝔸] {x y : 𝔸} (h : Commute x y) : Commute (exp 𝕂 x) (exp 𝕂 y) :=
   (h.exp_left _).exp_right _
 #align commute.exp Commute.exp
+-/
 
 end TopologicalAlgebra
 
@@ -181,15 +201,19 @@ section TopologicalDivisionAlgebra
 variable {𝕂 𝔸 : Type _} [Field 𝕂] [DivisionRing 𝔸] [Algebra 𝕂 𝔸] [TopologicalSpace 𝔸]
   [TopologicalRing 𝔸]
 
+#print expSeries_apply_eq_div /-
 theorem expSeries_apply_eq_div (x : 𝔸) (n : β„•) : (expSeries 𝕂 𝔸 n fun _ => x) = x ^ n / n ! := by
   rw [div_eq_mul_inv, ← (Nat.cast_commute n ! (x ^ n)).inv_leftβ‚€.Eq, ← smul_eq_mul,
     expSeries_apply_eq, inv_nat_cast_smul_eq _ _ _ _]
 #align exp_series_apply_eq_div expSeries_apply_eq_div
+-/
 
+#print expSeries_apply_eq_div' /-
 theorem expSeries_apply_eq_div' (x : 𝔸) :
     (fun n => expSeries 𝕂 𝔸 n fun _ => x) = fun n => x ^ n / n ! :=
   funext (expSeries_apply_eq_div x)
 #align exp_series_apply_eq_div' expSeries_apply_eq_div'
+-/
 
 #print expSeries_sum_eq_div /-
 theorem expSeries_sum_eq_div (x : 𝔸) : (expSeries 𝕂 𝔸).Sum x = βˆ‘' n : β„•, x ^ n / n ! :=
@@ -197,9 +221,11 @@ theorem expSeries_sum_eq_div (x : 𝔸) : (expSeries 𝕂 𝔸).Sum x = βˆ‘' n :
 #align exp_series_sum_eq_div expSeries_sum_eq_div
 -/
 
+#print exp_eq_tsum_div /-
 theorem exp_eq_tsum_div : exp 𝕂 = fun x : 𝔸 => βˆ‘' n : β„•, x ^ n / n ! :=
   funext expSeries_sum_eq_div
 #align exp_eq_tsum_div exp_eq_tsum_div
+-/
 
 end TopologicalDivisionAlgebra
 
@@ -211,12 +237,15 @@ variable {𝕂 𝔸 𝔹 : Type _} [NontriviallyNormedField 𝕂]
 
 variable [NormedRing 𝔸] [NormedRing 𝔹] [NormedAlgebra 𝕂 𝔸] [NormedAlgebra 𝕂 𝔹]
 
+#print norm_expSeries_summable_of_mem_ball /-
 theorem norm_expSeries_summable_of_mem_ball (x : 𝔸)
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     Summable fun n => β€–expSeries 𝕂 𝔸 n fun _ => xβ€– :=
   (expSeries 𝕂 𝔸).summable_norm_apply hx
 #align norm_exp_series_summable_of_mem_ball norm_expSeries_summable_of_mem_ball
+-/
 
+#print norm_expSeries_summable_of_mem_ball' /-
 theorem norm_expSeries_summable_of_mem_ball' (x : 𝔸)
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     Summable fun n => β€–(n !⁻¹ : 𝕂) β€’ x ^ nβ€– :=
@@ -225,29 +254,37 @@ theorem norm_expSeries_summable_of_mem_ball' (x : 𝔸)
   rw [← expSeries_apply_eq']
   exact norm_expSeries_summable_of_mem_ball x hx
 #align norm_exp_series_summable_of_mem_ball' norm_expSeries_summable_of_mem_ball'
+-/
 
 section CompleteAlgebra
 
 variable [CompleteSpace 𝔸]
 
+#print expSeries_summable_of_mem_ball /-
 theorem expSeries_summable_of_mem_ball (x : 𝔸)
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     Summable fun n => expSeries 𝕂 𝔸 n fun _ => x :=
   summable_of_summable_norm (norm_expSeries_summable_of_mem_ball x hx)
 #align exp_series_summable_of_mem_ball expSeries_summable_of_mem_ball
+-/
 
+#print expSeries_summable_of_mem_ball' /-
 theorem expSeries_summable_of_mem_ball' (x : 𝔸)
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     Summable fun n => (n !⁻¹ : 𝕂) β€’ x ^ n :=
   summable_of_summable_norm (norm_expSeries_summable_of_mem_ball' x hx)
 #align exp_series_summable_of_mem_ball' expSeries_summable_of_mem_ball'
+-/
 
+#print expSeries_hasSum_exp_of_mem_ball /-
 theorem expSeries_hasSum_exp_of_mem_ball (x : 𝔸)
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     HasSum (fun n => expSeries 𝕂 𝔸 n fun _ => x) (exp 𝕂 x) :=
   FormalMultilinearSeries.hasSum (expSeries 𝕂 𝔸) hx
 #align exp_series_has_sum_exp_of_mem_ball expSeries_hasSum_exp_of_mem_ball
+-/
 
+#print expSeries_hasSum_exp_of_mem_ball' /-
 theorem expSeries_hasSum_exp_of_mem_ball' (x : 𝔸)
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     HasSum (fun n => (n !⁻¹ : 𝕂) β€’ x ^ n) (exp 𝕂 x) :=
@@ -255,21 +292,29 @@ theorem expSeries_hasSum_exp_of_mem_ball' (x : 𝔸)
   rw [← expSeries_apply_eq']
   exact expSeries_hasSum_exp_of_mem_ball x hx
 #align exp_series_has_sum_exp_of_mem_ball' expSeries_hasSum_exp_of_mem_ball'
+-/
 
+#print hasFPowerSeriesOnBall_exp_of_radius_pos /-
 theorem hasFPowerSeriesOnBall_exp_of_radius_pos (h : 0 < (expSeries 𝕂 𝔸).radius) :
     HasFPowerSeriesOnBall (exp 𝕂) (expSeries 𝕂 𝔸) 0 (expSeries 𝕂 𝔸).radius :=
   (expSeries 𝕂 𝔸).HasFPowerSeriesOnBall h
 #align has_fpower_series_on_ball_exp_of_radius_pos hasFPowerSeriesOnBall_exp_of_radius_pos
+-/
 
+#print hasFPowerSeriesAt_exp_zero_of_radius_pos /-
 theorem hasFPowerSeriesAt_exp_zero_of_radius_pos (h : 0 < (expSeries 𝕂 𝔸).radius) :
     HasFPowerSeriesAt (exp 𝕂) (expSeries 𝕂 𝔸) 0 :=
   (hasFPowerSeriesOnBall_exp_of_radius_pos h).HasFPowerSeriesAt
 #align has_fpower_series_at_exp_zero_of_radius_pos hasFPowerSeriesAt_exp_zero_of_radius_pos
+-/
 
+#print continuousOn_exp /-
 theorem continuousOn_exp : ContinuousOn (exp 𝕂 : 𝔸 β†’ 𝔸) (EMetric.ball 0 (expSeries 𝕂 𝔸).radius) :=
   FormalMultilinearSeries.continuousOn
 #align continuous_on_exp continuousOn_exp
+-/
 
+#print analyticAt_exp_of_mem_ball /-
 theorem analyticAt_exp_of_mem_ball (x : 𝔸) (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     AnalyticAt 𝕂 (exp 𝕂) x := by
   by_cases h : (expSeries 𝕂 𝔸).radius = 0
@@ -277,7 +322,9 @@ theorem analyticAt_exp_of_mem_ball (x : 𝔸) (hx : x ∈ EMetric.ball (0 : 𝔸
   Β· have h := pos_iff_ne_zero.mpr h
     exact (hasFPowerSeriesOnBall_exp_of_radius_pos h).analyticAt_of_mem hx
 #align analytic_at_exp_of_mem_ball analyticAt_exp_of_mem_ball
+-/
 
+#print exp_add_of_commute_of_mem_ball /-
 /-- In a Banach-algebra `𝔸` over a normed field `𝕂` of characteristic zero, if `x` and `y` are
 in the disk of convergence and commute, then `exp 𝕂 (x + y) = (exp 𝕂 x) * (exp 𝕂 y)`. -/
 theorem exp_add_of_commute_of_mem_ball [CharZero 𝕂] {x y : 𝔸} (hxy : Commute x y)
@@ -299,7 +346,9 @@ theorem exp_add_of_commute_of_mem_ball [CharZero 𝕂] {x y : 𝔸} (hxy : Commu
   have : (n ! : 𝕂) β‰  0 := nat.cast_ne_zero.mpr n.factorial_ne_zero
   field_simp [this]
 #align exp_add_of_commute_of_mem_ball exp_add_of_commute_of_mem_ball
+-/
 
+#print invertibleExpOfMemBall /-
 /-- `exp 𝕂 x` has explicit two-sided inverse `exp 𝕂 (-x)`. -/
 noncomputable def invertibleExpOfMemBall [CharZero 𝕂] {x : 𝔸}
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : Invertible (exp 𝕂 x)
@@ -322,18 +371,24 @@ noncomputable def invertibleExpOfMemBall [CharZero 𝕂] {x : 𝔸}
     rw [← exp_add_of_commute_of_mem_ball (Commute.neg_right <| Commute.refl x) hx hnx, add_neg_self,
       exp_zero]
 #align invertible_exp_of_mem_ball invertibleExpOfMemBall
+-/
 
+#print isUnit_exp_of_mem_ball /-
 theorem isUnit_exp_of_mem_ball [CharZero 𝕂] {x : 𝔸}
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : IsUnit (exp 𝕂 x) :=
   @isUnit_of_invertible _ _ _ (invertibleExpOfMemBall hx)
 #align is_unit_exp_of_mem_ball isUnit_exp_of_mem_ball
+-/
 
+#print invOf_exp_of_mem_ball /-
 theorem invOf_exp_of_mem_ball [CharZero 𝕂] {x : 𝔸}
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) [Invertible (exp 𝕂 x)] :
     β…Ÿ (exp 𝕂 x) = exp 𝕂 (-x) := by letI := invertibleExpOfMemBall hx;
   convert (rfl : β…Ÿ (exp 𝕂 x) = _)
 #align inv_of_exp_of_mem_ball invOf_exp_of_mem_ball
+-/
 
+#print map_exp_of_mem_ball /-
 /-- Any continuous ring homomorphism commutes with `exp`. -/
 theorem map_exp_of_mem_ball {F} [RingHomClass F 𝔸 𝔹] (f : F) (hf : Continuous f) (x : 𝔸)
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : f (exp 𝕂 x) = exp 𝕂 (f x) :=
@@ -343,14 +398,17 @@ theorem map_exp_of_mem_ball {F} [RingHomClass F 𝔸 𝔹] (f : F) (hf : Continu
   dsimp only [Function.comp]
   simp_rw [one_div, map_inv_nat_cast_smul f 𝕂 𝕂, map_pow]
 #align map_exp_of_mem_ball map_exp_of_mem_ball
+-/
 
 end CompleteAlgebra
 
+#print algebraMap_exp_comm_of_mem_ball /-
 theorem algebraMap_exp_comm_of_mem_ball [CompleteSpace 𝕂] (x : 𝕂)
     (hx : x ∈ EMetric.ball (0 : 𝕂) (expSeries 𝕂 𝕂).radius) :
     algebraMap 𝕂 𝔸 (exp 𝕂 x) = exp 𝕂 (algebraMap 𝕂 𝔸 x) :=
   map_exp_of_mem_ball _ (continuous_algebraMap 𝕂 𝔸) _ hx
 #align algebra_map_exp_comm_of_mem_ball algebraMap_exp_comm_of_mem_ball
+-/
 
 end AnyFieldAnyAlgebra
 
@@ -360,6 +418,7 @@ variable {𝕂 𝔸 : Type _} [NontriviallyNormedField 𝕂] [NormedDivisionRing
 
 variable (𝕂)
 
+#print norm_expSeries_div_summable_of_mem_ball /-
 theorem norm_expSeries_div_summable_of_mem_ball (x : 𝔸)
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : Summable fun n => β€–x ^ n / n !β€– :=
   by
@@ -367,12 +426,16 @@ theorem norm_expSeries_div_summable_of_mem_ball (x : 𝔸)
   rw [← expSeries_apply_eq_div' x]
   exact norm_expSeries_summable_of_mem_ball x hx
 #align norm_exp_series_div_summable_of_mem_ball norm_expSeries_div_summable_of_mem_ball
+-/
 
+#print expSeries_div_summable_of_mem_ball /-
 theorem expSeries_div_summable_of_mem_ball [CompleteSpace 𝔸] (x : 𝔸)
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : Summable fun n => x ^ n / n ! :=
   summable_of_summable_norm (norm_expSeries_div_summable_of_mem_ball 𝕂 x hx)
 #align exp_series_div_summable_of_mem_ball expSeries_div_summable_of_mem_ball
+-/
 
+#print expSeries_div_hasSum_exp_of_mem_ball /-
 theorem expSeries_div_hasSum_exp_of_mem_ball [CompleteSpace 𝔸] (x : 𝔸)
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     HasSum (fun n => x ^ n / n !) (exp 𝕂 x) :=
@@ -380,14 +443,17 @@ theorem expSeries_div_hasSum_exp_of_mem_ball [CompleteSpace 𝔸] (x : 𝔸)
   rw [← expSeries_apply_eq_div' x]
   exact expSeries_hasSum_exp_of_mem_ball x hx
 #align exp_series_div_has_sum_exp_of_mem_ball expSeries_div_hasSum_exp_of_mem_ball
+-/
 
 variable {𝕂}
 
+#print exp_neg_of_mem_ball /-
 theorem exp_neg_of_mem_ball [CharZero 𝕂] [CompleteSpace 𝔸] {x : 𝔸}
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : exp 𝕂 (-x) = (exp 𝕂 x)⁻¹ :=
   letI := invertibleExpOfMemBall hx
   invOf_eq_inv (exp 𝕂 x)
 #align exp_neg_of_mem_ball exp_neg_of_mem_ball
+-/
 
 end AnyFieldDivisionAlgebra
 
@@ -396,6 +462,7 @@ section AnyFieldCommAlgebra
 variable {𝕂 𝔸 : Type _} [NontriviallyNormedField 𝕂] [NormedCommRing 𝔸] [NormedAlgebra 𝕂 𝔸]
   [CompleteSpace 𝔸]
 
+#print exp_add_of_mem_ball /-
 /-- In a commutative Banach-algebra `𝔸` over a normed field `𝕂` of characteristic zero,
 `exp 𝕂 (x+y) = (exp 𝕂 x) * (exp 𝕂 y)` for all `x`, `y` in the disk of convergence. -/
 theorem exp_add_of_mem_ball [CharZero 𝕂] {x y : 𝔸}
@@ -403,6 +470,7 @@ theorem exp_add_of_mem_ball [CharZero 𝕂] {x y : 𝔸}
     (hy : y ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : exp 𝕂 (x + y) = exp 𝕂 x * exp 𝕂 y :=
   exp_add_of_commute_of_mem_ball (Commute.all x y) hx hy
 #align exp_add_of_mem_ball exp_add_of_mem_ball
+-/
 
 end AnyFieldCommAlgebra
 
@@ -414,6 +482,7 @@ variable (𝕂 𝔸 𝔹 : Type _) [IsROrC 𝕂] [NormedRing 𝔸] [NormedAlgebr
 
 variable [NormedRing 𝔹] [NormedAlgebra 𝕂 𝔹]
 
+#print expSeries_radius_eq_top /-
 /-- In a normed algebra `𝔸` over `𝕂 = ℝ` or `𝕂 = β„‚`, the series defining the exponential map
 has an infinite radius of convergence. -/
 theorem expSeries_radius_eq_top : (expSeries 𝕂 𝔸).radius = ∞ :=
@@ -427,12 +496,15 @@ theorem expSeries_radius_eq_top : (expSeries 𝕂 𝔸).radius = ∞ :=
     norm_mk_pi_algebra_fin_le_of_pos (Nat.pos_of_ne_zero hn)
   exact mul_le_of_le_one_right (div_nonneg (pow_nonneg r.coe_nonneg n) n !.cast_nonneg) this
 #align exp_series_radius_eq_top expSeries_radius_eq_top
+-/
 
+#print expSeries_radius_pos /-
 theorem expSeries_radius_pos : 0 < (expSeries 𝕂 𝔸).radius :=
   by
   rw [expSeries_radius_eq_top]
   exact WithTop.zero_lt_top
 #align exp_series_radius_pos expSeries_radius_pos
+-/
 
 variable {𝕂 𝔸 𝔹}
 
@@ -442,9 +514,11 @@ theorem norm_expSeries_summable (x : 𝔸) : Summable fun n => β€–expSeries 𝕂
 #align norm_exp_series_summable norm_expSeries_summable
 -/
 
+#print norm_expSeries_summable' /-
 theorem norm_expSeries_summable' (x : 𝔸) : Summable fun n => β€–(n !⁻¹ : 𝕂) β€’ x ^ nβ€– :=
   norm_expSeries_summable_of_mem_ball' x ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
 #align norm_exp_series_summable' norm_expSeries_summable'
+-/
 
 section CompleteAlgebra
 
@@ -456,9 +530,11 @@ theorem expSeries_summable (x : 𝔸) : Summable fun n => expSeries 𝕂 𝔸 n
 #align exp_series_summable expSeries_summable
 -/
 
+#print expSeries_summable' /-
 theorem expSeries_summable' (x : 𝔸) : Summable fun n => (n !⁻¹ : 𝕂) β€’ x ^ n :=
   summable_of_summable_norm (norm_expSeries_summable' x)
 #align exp_series_summable' expSeries_summable'
+-/
 
 #print expSeries_hasSum_exp /-
 theorem expSeries_hasSum_exp (x : 𝔸) : HasSum (fun n => expSeries 𝕂 𝔸 n fun _ => x) (exp 𝕂 x) :=
@@ -466,17 +542,23 @@ theorem expSeries_hasSum_exp (x : 𝔸) : HasSum (fun n => expSeries 𝕂 𝔸 n
 #align exp_series_has_sum_exp expSeries_hasSum_exp
 -/
 
+#print exp_series_hasSum_exp' /-
 theorem exp_series_hasSum_exp' (x : 𝔸) : HasSum (fun n => (n !⁻¹ : 𝕂) β€’ x ^ n) (exp 𝕂 x) :=
   expSeries_hasSum_exp_of_mem_ball' x ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
 #align exp_series_has_sum_exp' exp_series_hasSum_exp'
+-/
 
+#print exp_hasFPowerSeriesOnBall /-
 theorem exp_hasFPowerSeriesOnBall : HasFPowerSeriesOnBall (exp 𝕂) (expSeries 𝕂 𝔸) 0 ∞ :=
   expSeries_radius_eq_top 𝕂 𝔸 β–Έ hasFPowerSeriesOnBall_exp_of_radius_pos (expSeries_radius_pos _ _)
 #align exp_has_fpower_series_on_ball exp_hasFPowerSeriesOnBall
+-/
 
+#print exp_hasFPowerSeriesAt_zero /-
 theorem exp_hasFPowerSeriesAt_zero : HasFPowerSeriesAt (exp 𝕂) (expSeries 𝕂 𝔸) 0 :=
   exp_hasFPowerSeriesOnBall.HasFPowerSeriesAt
 #align exp_has_fpower_series_at_zero exp_hasFPowerSeriesAt_zero
+-/
 
 #print exp_continuous /-
 @[continuity]
@@ -488,48 +570,63 @@ theorem exp_continuous : Continuous (exp 𝕂 : 𝔸 β†’ 𝔸) :=
 #align exp_continuous exp_continuous
 -/
 
+#print exp_analytic /-
 theorem exp_analytic (x : 𝔸) : AnalyticAt 𝕂 (exp 𝕂) x :=
   analyticAt_exp_of_mem_ball x ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
 #align exp_analytic exp_analytic
+-/
 
+#print exp_add_of_commute /-
 /-- In a Banach-algebra `𝔸` over `𝕂 = ℝ` or `𝕂 = β„‚`, if `x` and `y` commute, then
 `exp 𝕂 (x+y) = (exp 𝕂 x) * (exp 𝕂 y)`. -/
 theorem exp_add_of_commute {x y : 𝔸} (hxy : Commute x y) : exp 𝕂 (x + y) = exp 𝕂 x * exp 𝕂 y :=
   exp_add_of_commute_of_mem_ball hxy ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
     ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
 #align exp_add_of_commute exp_add_of_commute
+-/
 
 section
 
 variable (𝕂)
 
+#print invertibleExp /-
 /-- `exp 𝕂 x` has explicit two-sided inverse `exp 𝕂 (-x)`. -/
 noncomputable def invertibleExp (x : 𝔸) : Invertible (exp 𝕂 x) :=
   invertibleExpOfMemBall <| (expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _
 #align invertible_exp invertibleExp
+-/
 
+#print isUnit_exp /-
 theorem isUnit_exp (x : 𝔸) : IsUnit (exp 𝕂 x) :=
   isUnit_exp_of_mem_ball <| (expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _
 #align is_unit_exp isUnit_exp
+-/
 
+#print invOf_exp /-
 theorem invOf_exp (x : 𝔸) [Invertible (exp 𝕂 x)] : β…Ÿ (exp 𝕂 x) = exp 𝕂 (-x) :=
   invOf_exp_of_mem_ball <| (expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _
 #align inv_of_exp invOf_exp
+-/
 
+#print Ring.inverse_exp /-
 theorem Ring.inverse_exp (x : 𝔸) : Ring.inverse (exp 𝕂 x) = exp 𝕂 (-x) :=
   letI := invertibleExp 𝕂 x
   Ring.inverse_invertible _
 #align ring.inverse_exp Ring.inverse_exp
+-/
 
+#print exp_mem_unitary_of_mem_skewAdjoint /-
 theorem exp_mem_unitary_of_mem_skewAdjoint [StarRing 𝔸] [ContinuousStar 𝔸] {x : 𝔸}
     (h : x ∈ skewAdjoint 𝔸) : exp 𝕂 x ∈ unitary 𝔸 := by
   rw [unitary.mem_iff, star_exp, skew_adjoint.mem_iff.mp h, ←
     exp_add_of_commute (Commute.refl x).neg_left, ← exp_add_of_commute (Commute.refl x).neg_right,
     add_left_neg, add_right_neg, exp_zero, and_self_iff]
 #align exp_mem_unitary_of_mem_skew_adjoint exp_mem_unitary_of_mem_skewAdjoint
+-/
 
 end
 
+#print exp_sum_of_commute /-
 /-- In a Banach-algebra `𝔸` over `𝕂 = ℝ` or `𝕂 = β„‚`, if a family of elements `f i` mutually
 commute then `exp 𝕂 (βˆ‘ i, f i) = ∏ i, exp 𝕂 (f i)`. -/
 theorem exp_sum_of_commute {ΞΉ} (s : Finset ΞΉ) (f : ΞΉ β†’ 𝔸)
@@ -545,45 +642,61 @@ theorem exp_sum_of_commute {ΞΉ} (s : Finset ΞΉ) (f : ΞΉ β†’ 𝔸)
   refine' Commute.sum_right _ _ _ fun i hi => _
   exact h.of_refl (Finset.mem_insert_self _ _) (Finset.mem_insert_of_mem hi)
 #align exp_sum_of_commute exp_sum_of_commute
+-/
 
+#print exp_nsmul /-
 theorem exp_nsmul (n : β„•) (x : 𝔸) : exp 𝕂 (n β€’ x) = exp 𝕂 x ^ n :=
   by
   induction' n with n ih
   Β· rw [zero_smul, pow_zero, exp_zero]
   Β· rw [succ_nsmul, pow_succ, exp_add_of_commute ((Commute.refl x).smul_right n), ih]
 #align exp_nsmul exp_nsmul
+-/
 
 variable (𝕂)
 
+#print map_exp /-
 /-- Any continuous ring homomorphism commutes with `exp`. -/
 theorem map_exp {F} [RingHomClass F 𝔸 𝔹] (f : F) (hf : Continuous f) (x : 𝔸) :
     f (exp 𝕂 x) = exp 𝕂 (f x) :=
   map_exp_of_mem_ball f hf x <| (expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _
 #align map_exp map_exp
+-/
 
+#print exp_smul /-
 theorem exp_smul {G} [Monoid G] [MulSemiringAction G 𝔸] [ContinuousConstSMul G 𝔸] (g : G) (x : 𝔸) :
     exp 𝕂 (g β€’ x) = g β€’ exp 𝕂 x :=
   (map_exp 𝕂 (MulSemiringAction.toRingHom G 𝔸 g) (continuous_const_smul _) x).symm
 #align exp_smul exp_smul
+-/
 
+#print exp_units_conj /-
 theorem exp_units_conj (y : 𝔸ˣ) (x : 𝔸) : exp 𝕂 (y * x * ↑y⁻¹ : 𝔸) = y * exp 𝕂 x * ↑y⁻¹ :=
   exp_smul _ (ConjAct.toConjAct y) x
 #align exp_units_conj exp_units_conj
+-/
 
+#print exp_units_conj' /-
 theorem exp_units_conj' (y : 𝔸ˣ) (x : 𝔸) : exp 𝕂 (↑y⁻¹ * x * y) = ↑y⁻¹ * exp 𝕂 x * y :=
   exp_units_conj _ _ _
 #align exp_units_conj' exp_units_conj'
+-/
 
+#print Prod.fst_exp /-
 @[simp]
 theorem Prod.fst_exp [CompleteSpace 𝔹] (x : 𝔸 Γ— 𝔹) : (exp 𝕂 x).fst = exp 𝕂 x.fst :=
   map_exp _ (RingHom.fst 𝔸 𝔹) continuous_fst x
 #align prod.fst_exp Prod.fst_exp
+-/
 
+#print Prod.snd_exp /-
 @[simp]
 theorem Prod.snd_exp [CompleteSpace 𝔹] (x : 𝔸 Γ— 𝔹) : (exp 𝕂 x).snd = exp 𝕂 x.snd :=
   map_exp _ (RingHom.snd 𝔸 𝔹) continuous_snd x
 #align prod.snd_exp Prod.snd_exp
+-/
 
+#print Pi.exp_apply /-
 @[simp]
 theorem Pi.exp_apply {ΞΉ : Type _} {𝔸 : ΞΉ β†’ Type _} [Fintype ΞΉ] [βˆ€ i, NormedRing (𝔸 i)]
     [βˆ€ i, NormedAlgebra 𝕂 (𝔸 i)] [βˆ€ i, CompleteSpace (𝔸 i)] (x : βˆ€ i, 𝔸 i) (i : ΞΉ) :
@@ -591,13 +704,17 @@ theorem Pi.exp_apply {ΞΉ : Type _} {𝔸 : ΞΉ β†’ Type _} [Fintype ΞΉ] [βˆ€ i, N
   letI : NormedAlgebra 𝕂 (βˆ€ i, 𝔸 i) := Pi.normedAlgebra _
   map_exp _ (Pi.evalRingHom 𝔸 i) (continuous_apply _) x
 #align pi.exp_apply Pi.exp_apply
+-/
 
+#print Pi.exp_def /-
 theorem Pi.exp_def {ΞΉ : Type _} {𝔸 : ΞΉ β†’ Type _} [Fintype ΞΉ] [βˆ€ i, NormedRing (𝔸 i)]
     [βˆ€ i, NormedAlgebra 𝕂 (𝔸 i)] [βˆ€ i, CompleteSpace (𝔸 i)] (x : βˆ€ i, 𝔸 i) :
     exp 𝕂 x = fun i => exp 𝕂 (x i) :=
   funext <| Pi.exp_apply 𝕂 x
 #align pi.exp_def Pi.exp_def
+-/
 
+#print Function.update_exp /-
 theorem Function.update_exp {ΞΉ : Type _} {𝔸 : ΞΉ β†’ Type _} [Fintype ΞΉ] [DecidableEq ΞΉ]
     [βˆ€ i, NormedRing (𝔸 i)] [βˆ€ i, NormedAlgebra 𝕂 (𝔸 i)] [βˆ€ i, CompleteSpace (𝔸 i)] (x : βˆ€ i, 𝔸 i)
     (j : ΞΉ) (xj : 𝔸 j) : Function.update (exp 𝕂 x) j (exp 𝕂 xj) = exp 𝕂 (Function.update x j xj) :=
@@ -606,12 +723,15 @@ theorem Function.update_exp {ΞΉ : Type _} {𝔸 : ΞΉ β†’ Type _} [Fintype ΞΉ] [D
   simp_rw [Pi.exp_def]
   exact (Function.apply_update (fun i => exp 𝕂) x j xj i).symm
 #align function.update_exp Function.update_exp
+-/
 
 end CompleteAlgebra
 
+#print algebraMap_exp_comm /-
 theorem algebraMap_exp_comm (x : 𝕂) : algebraMap 𝕂 𝔸 (exp 𝕂 x) = exp 𝕂 (algebraMap 𝕂 𝔸 x) :=
   algebraMap_exp_comm_of_mem_ball x <| (expSeries_radius_eq_top 𝕂 𝕂).symm β–Έ edist_lt_top _ _
 #align algebra_map_exp_comm algebraMap_exp_comm
+-/
 
 end AnyAlgebra
 
@@ -621,26 +741,34 @@ variable {𝕂 𝔸 : Type _} [IsROrC 𝕂] [NormedDivisionRing 𝔸] [NormedAlg
 
 variable (𝕂)
 
+#print norm_expSeries_div_summable /-
 theorem norm_expSeries_div_summable (x : 𝔸) : Summable fun n => β€–x ^ n / n !β€– :=
   norm_expSeries_div_summable_of_mem_ball 𝕂 x
     ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
 #align norm_exp_series_div_summable norm_expSeries_div_summable
+-/
 
 variable [CompleteSpace 𝔸]
 
+#print expSeries_div_summable /-
 theorem expSeries_div_summable (x : 𝔸) : Summable fun n => x ^ n / n ! :=
   summable_of_summable_norm (norm_expSeries_div_summable 𝕂 x)
 #align exp_series_div_summable expSeries_div_summable
+-/
 
+#print expSeries_div_hasSum_exp /-
 theorem expSeries_div_hasSum_exp (x : 𝔸) : HasSum (fun n => x ^ n / n !) (exp 𝕂 x) :=
   expSeries_div_hasSum_exp_of_mem_ball 𝕂 x ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
 #align exp_series_div_has_sum_exp expSeries_div_hasSum_exp
+-/
 
 variable {𝕂}
 
+#print exp_neg /-
 theorem exp_neg (x : 𝔸) : exp 𝕂 (-x) = (exp 𝕂 x)⁻¹ :=
   exp_neg_of_mem_ball <| (expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _
 #align exp_neg exp_neg
+-/
 
 #print exp_zsmul /-
 theorem exp_zsmul (z : β„€) (x : 𝔸) : exp 𝕂 (z β€’ x) = exp 𝕂 x ^ z :=
@@ -651,13 +779,17 @@ theorem exp_zsmul (z : β„€) (x : 𝔸) : exp 𝕂 (z β€’ x) = exp 𝕂 x ^ z :=
 #align exp_zsmul exp_zsmul
 -/
 
+#print exp_conj /-
 theorem exp_conj (y : 𝔸) (x : 𝔸) (hy : y β‰  0) : exp 𝕂 (y * x * y⁻¹) = y * exp 𝕂 x * y⁻¹ :=
   exp_units_conj _ (Units.mk0 y hy) x
 #align exp_conj exp_conj
+-/
 
+#print exp_conj' /-
 theorem exp_conj' (y : 𝔸) (x : 𝔸) (hy : y β‰  0) : exp 𝕂 (y⁻¹ * x * y) = y⁻¹ * exp 𝕂 x * y :=
   exp_units_conj' _ (Units.mk0 y hy) x
 #align exp_conj' exp_conj'
+-/
 
 end DivisionAlgebra
 
@@ -665,12 +797,14 @@ section CommAlgebra
 
 variable {𝕂 𝔸 : Type _} [IsROrC 𝕂] [NormedCommRing 𝔸] [NormedAlgebra 𝕂 𝔸] [CompleteSpace 𝔸]
 
+#print exp_add /-
 /-- In a commutative Banach-algebra `𝔸` over `𝕂 = ℝ` or `𝕂 = β„‚`,
 `exp 𝕂 (x+y) = (exp 𝕂 x) * (exp 𝕂 y)`. -/
 theorem exp_add {x y : 𝔸} : exp 𝕂 (x + y) = exp 𝕂 x * exp 𝕂 y :=
   exp_add_of_mem_ball ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
     ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
 #align exp_add exp_add
+-/
 
 #print exp_sum /-
 /-- A version of `exp_sum_of_commute` for a commutative Banach-algebra. -/
@@ -692,13 +826,16 @@ section ScalarTower
 variable (𝕂 𝕂' 𝔸 : Type _) [Field 𝕂] [Field 𝕂'] [Ring 𝔸] [Algebra 𝕂 𝔸] [Algebra 𝕂' 𝔸]
   [TopologicalSpace 𝔸] [TopologicalRing 𝔸]
 
+#print expSeries_eq_expSeries /-
 /-- If a normed ring `𝔸` is a normed algebra over two fields, then they define the same
 `exp_series` on `𝔸`. -/
 theorem expSeries_eq_expSeries (n : β„•) (x : 𝔸) :
     (expSeries 𝕂 𝔸 n fun _ => x) = expSeries 𝕂' 𝔸 n fun _ => x := by
   rw [expSeries_apply_eq, expSeries_apply_eq, inv_nat_cast_smul_eq 𝕂 𝕂']
 #align exp_series_eq_exp_series expSeries_eq_expSeries
+-/
 
+#print exp_eq_exp /-
 /-- If a normed ring `𝔸` is a normed algebra over two fields, then they define the same
 exponential function on `𝔸`. -/
 theorem exp_eq_exp : (exp 𝕂 : 𝔸 β†’ 𝔸) = exp 𝕂' :=
@@ -708,16 +845,21 @@ theorem exp_eq_exp : (exp 𝕂 : 𝔸 β†’ 𝔸) = exp 𝕂' :=
   refine' tsum_congr fun n => _
   rw [expSeries_eq_expSeries 𝕂 𝕂' 𝔸 n x]
 #align exp_eq_exp exp_eq_exp
+-/
 
+#print exp_ℝ_β„‚_eq_exp_β„‚_β„‚ /-
 theorem exp_ℝ_β„‚_eq_exp_β„‚_β„‚ : (exp ℝ : β„‚ β†’ β„‚) = exp β„‚ :=
   exp_eq_exp ℝ β„‚ β„‚
 #align exp_ℝ_β„‚_eq_exp_β„‚_β„‚ exp_ℝ_β„‚_eq_exp_β„‚_β„‚
+-/
 
+#print of_real_exp_ℝ_ℝ /-
 /-- A version of `complex.of_real_exp` for `exp` instead of `complex.exp` -/
 @[simp, norm_cast]
 theorem of_real_exp_ℝ_ℝ (r : ℝ) : ↑(exp ℝ r) = exp β„‚ (r : β„‚) :=
   (map_exp ℝ (algebraMap ℝ β„‚) (continuous_algebraMap _ _) r).trans (congr_fun exp_ℝ_β„‚_eq_exp_β„‚_β„‚ _)
 #align of_real_exp_ℝ_ℝ of_real_exp_ℝ_ℝ
+-/
 
 end ScalarTower
 
Diff
@@ -588,8 +588,7 @@ theorem Prod.snd_exp [CompleteSpace 𝔹] (x : 𝔸 Γ— 𝔹) : (exp 𝕂 x).snd
 theorem Pi.exp_apply {ΞΉ : Type _} {𝔸 : ΞΉ β†’ Type _} [Fintype ΞΉ] [βˆ€ i, NormedRing (𝔸 i)]
     [βˆ€ i, NormedAlgebra 𝕂 (𝔸 i)] [βˆ€ i, CompleteSpace (𝔸 i)] (x : βˆ€ i, 𝔸 i) (i : ΞΉ) :
     exp 𝕂 x i = exp 𝕂 (x i) :=
-  letI-- Lean struggles to infer this instance due to it wanting `[Ξ  i, semi_normed_ring (𝔸 i)]`
-   : NormedAlgebra 𝕂 (βˆ€ i, 𝔸 i) := Pi.normedAlgebra _
+  letI : NormedAlgebra 𝕂 (βˆ€ i, 𝔸 i) := Pi.normedAlgebra _
   map_exp _ (Pi.evalRingHom 𝔸 i) (continuous_apply _) x
 #align pi.exp_apply Pi.exp_apply
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anatole Dedecker, Eric Wieser
 
 ! This file was ported from Lean 3 source module analysis.normed_space.exponential
-! leanprover-community/mathlib commit 62748956a1ece9b26b33243e2e3a2852176666f5
+! leanprover-community/mathlib commit af471b9e3ce868f296626d33189b4ce730fa4c00
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -18,6 +18,9 @@ import Mathbin.Topology.Algebra.Algebra
 /-!
 # Exponential in a Banach algebra
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 In this file, we define `exp 𝕂 : 𝔸 β†’ 𝔸`, the exponential map in a topological algebra `𝔸` over a
 field `𝕂`.
 
@@ -75,14 +78,17 @@ section TopologicalAlgebra
 
 variable (𝕂 𝔸 : Type _) [Field 𝕂] [Ring 𝔸] [Algebra 𝕂 𝔸] [TopologicalSpace 𝔸] [TopologicalRing 𝔸]
 
+#print expSeries /-
 /-- `exp_series 𝕂 𝔸` is the `formal_multilinear_series` whose `n`-th term is the map
 `(xα΅’) : 𝔸ⁿ ↦ (1/n! : 𝕂) β€’ ∏ xα΅’`. Its sum is the exponential map `exp 𝕂 : 𝔸 β†’ 𝔸`. -/
 def expSeries : FormalMultilinearSeries 𝕂 𝔸 𝔸 := fun n =>
   (n !⁻¹ : 𝕂) β€’ ContinuousMultilinearMap.mkPiAlgebraFin 𝕂 n 𝔸
 #align exp_series expSeries
+-/
 
 variable {𝔸}
 
+#print exp /-
 /-- `exp 𝕂 : 𝔸 β†’ 𝔸` is the exponential map determined by the action of `𝕂` on `𝔸`.
 It is defined as the sum of the `formal_multilinear_series` `exp_series 𝕂 𝔸`.
 
@@ -92,6 +98,7 @@ case. -/
 noncomputable def exp (x : 𝔸) : 𝔸 :=
   (expSeries 𝕂 𝔸).Sum x
 #align exp exp
+-/
 
 variable {𝕂}
 
@@ -104,9 +111,11 @@ theorem expSeries_apply_eq' (x : 𝔸) :
   funext (expSeries_apply_eq x)
 #align exp_series_apply_eq' expSeries_apply_eq'
 
+#print expSeries_sum_eq /-
 theorem expSeries_sum_eq (x : 𝔸) : (expSeries 𝕂 𝔸).Sum x = βˆ‘' n : β„•, (n !⁻¹ : 𝕂) β€’ x ^ n :=
   tsum_congr fun n => expSeries_apply_eq x n
 #align exp_series_sum_eq expSeries_sum_eq
+-/
 
 theorem exp_eq_tsum : exp 𝕂 = fun x : 𝔸 => βˆ‘' n : β„•, (n !⁻¹ : 𝕂) β€’ x ^ n :=
   funext expSeries_sum_eq
@@ -135,17 +144,21 @@ theorem exp_unop [T2Space 𝔸] (x : 𝔸ᡐᡒᡖ) : exp 𝕂 (MulOpposite.unop
   by simp_rw [exp, expSeries_sum_eq, ← MulOpposite.unop_pow, ← MulOpposite.unop_smul, tsum_unop]
 #align exp_unop exp_unop
 
+#print star_exp /-
 theorem star_exp [T2Space 𝔸] [StarRing 𝔸] [ContinuousStar 𝔸] (x : 𝔸) :
     star (exp 𝕂 x) = exp 𝕂 (star x) := by
   simp_rw [exp_eq_tsum, ← star_pow, ← star_inv_nat_cast_smul, ← tsum_star]
 #align star_exp star_exp
+-/
 
 variable (𝕂)
 
+#print IsSelfAdjoint.exp /-
 theorem IsSelfAdjoint.exp [T2Space 𝔸] [StarRing 𝔸] [ContinuousStar 𝔸] {x : 𝔸}
     (h : IsSelfAdjoint x) : IsSelfAdjoint (exp 𝕂 x) :=
   (star_exp x).trans <| h.symm β–Έ rfl
 #align is_self_adjoint.exp IsSelfAdjoint.exp
+-/
 
 theorem Commute.exp_right [T2Space 𝔸] {x y : 𝔸} (h : Commute x y) : Commute x (exp 𝕂 y) :=
   by
@@ -178,9 +191,11 @@ theorem expSeries_apply_eq_div' (x : 𝔸) :
   funext (expSeries_apply_eq_div x)
 #align exp_series_apply_eq_div' expSeries_apply_eq_div'
 
+#print expSeries_sum_eq_div /-
 theorem expSeries_sum_eq_div (x : 𝔸) : (expSeries 𝕂 𝔸).Sum x = βˆ‘' n : β„•, x ^ n / n ! :=
   tsum_congr (expSeries_apply_eq_div x)
 #align exp_series_sum_eq_div expSeries_sum_eq_div
+-/
 
 theorem exp_eq_tsum_div : exp 𝕂 = fun x : 𝔸 => βˆ‘' n : β„•, x ^ n / n ! :=
   funext expSeries_sum_eq_div
@@ -315,7 +330,8 @@ theorem isUnit_exp_of_mem_ball [CharZero 𝕂] {x : 𝔸}
 
 theorem invOf_exp_of_mem_ball [CharZero 𝕂] {x : 𝔸}
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) [Invertible (exp 𝕂 x)] :
-    β…Ÿ (exp 𝕂 x) = exp 𝕂 (-x) := by letI := invertibleExpOfMemBall hx; convert(rfl : β…Ÿ (exp 𝕂 x) = _)
+    β…Ÿ (exp 𝕂 x) = exp 𝕂 (-x) := by letI := invertibleExpOfMemBall hx;
+  convert (rfl : β…Ÿ (exp 𝕂 x) = _)
 #align inv_of_exp_of_mem_ball invOf_exp_of_mem_ball
 
 /-- Any continuous ring homomorphism commutes with `exp`. -/
@@ -404,7 +420,7 @@ theorem expSeries_radius_eq_top : (expSeries 𝕂 𝔸).radius = ∞ :=
   by
   refine' (expSeries 𝕂 𝔸).radius_eq_top_of_summable_norm fun r => _
   refine' summable_of_norm_bounded_eventually _ (Real.summable_pow_div_factorial r) _
-  filter_upwards [eventually_cofinite_ne 0]with n hn
+  filter_upwards [eventually_cofinite_ne 0] with n hn
   rw [norm_mul, norm_norm (expSeries 𝕂 𝔸 n), expSeries, norm_smul, norm_inv, norm_pow,
     NNReal.norm_eq, norm_nat_cast, mul_comm, ← mul_assoc, ← div_eq_mul_inv]
   have : β€–ContinuousMultilinearMap.mkPiAlgebraFin 𝕂 n 𝔸‖ ≀ 1 :=
@@ -420,29 +436,35 @@ theorem expSeries_radius_pos : 0 < (expSeries 𝕂 𝔸).radius :=
 
 variable {𝕂 𝔸 𝔹}
 
+#print norm_expSeries_summable /-
 theorem norm_expSeries_summable (x : 𝔸) : Summable fun n => β€–expSeries 𝕂 𝔸 n fun _ => xβ€– :=
   norm_expSeries_summable_of_mem_ball x ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
 #align norm_exp_series_summable norm_expSeries_summable
+-/
 
-theorem norm_exp_series_summable' (x : 𝔸) : Summable fun n => β€–(n !⁻¹ : 𝕂) β€’ x ^ nβ€– :=
+theorem norm_expSeries_summable' (x : 𝔸) : Summable fun n => β€–(n !⁻¹ : 𝕂) β€’ x ^ nβ€– :=
   norm_expSeries_summable_of_mem_ball' x ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
-#align norm_exp_series_summable' norm_exp_series_summable'
+#align norm_exp_series_summable' norm_expSeries_summable'
 
 section CompleteAlgebra
 
 variable [CompleteSpace 𝔸]
 
+#print expSeries_summable /-
 theorem expSeries_summable (x : 𝔸) : Summable fun n => expSeries 𝕂 𝔸 n fun _ => x :=
   summable_of_summable_norm (norm_expSeries_summable x)
 #align exp_series_summable expSeries_summable
+-/
 
-theorem exp_series_summable' (x : 𝔸) : Summable fun n => (n !⁻¹ : 𝕂) β€’ x ^ n :=
-  summable_of_summable_norm (norm_exp_series_summable' x)
-#align exp_series_summable' exp_series_summable'
+theorem expSeries_summable' (x : 𝔸) : Summable fun n => (n !⁻¹ : 𝕂) β€’ x ^ n :=
+  summable_of_summable_norm (norm_expSeries_summable' x)
+#align exp_series_summable' expSeries_summable'
 
+#print expSeries_hasSum_exp /-
 theorem expSeries_hasSum_exp (x : 𝔸) : HasSum (fun n => expSeries 𝕂 𝔸 n fun _ => x) (exp 𝕂 x) :=
   expSeries_hasSum_exp_of_mem_ball x ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
 #align exp_series_has_sum_exp expSeries_hasSum_exp
+-/
 
 theorem exp_series_hasSum_exp' (x : 𝔸) : HasSum (fun n => (n !⁻¹ : 𝕂) β€’ x ^ n) (exp 𝕂 x) :=
   expSeries_hasSum_exp_of_mem_ball' x ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
@@ -456,6 +478,7 @@ theorem exp_hasFPowerSeriesAt_zero : HasFPowerSeriesAt (exp 𝕂) (expSeries 
   exp_hasFPowerSeriesOnBall.HasFPowerSeriesAt
 #align exp_has_fpower_series_at_zero exp_hasFPowerSeriesAt_zero
 
+#print exp_continuous /-
 @[continuity]
 theorem exp_continuous : Continuous (exp 𝕂 : 𝔸 β†’ 𝔸) :=
   by
@@ -463,6 +486,7 @@ theorem exp_continuous : Continuous (exp 𝕂 : 𝔸 β†’ 𝔸) :=
     expSeries_radius_eq_top 𝕂 𝔸]
   exact continuousOn_exp
 #align exp_continuous exp_continuous
+-/
 
 theorem exp_analytic (x : 𝔸) : AnalyticAt 𝕂 (exp 𝕂) x :=
   analyticAt_exp_of_mem_ball x ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
@@ -514,12 +538,12 @@ theorem exp_sum_of_commute {ΞΉ} (s : Finset ΞΉ) (f : ΞΉ β†’ 𝔸)
       s.noncommProd (fun i => exp 𝕂 (f i)) fun i hi j hj _ => (h.of_refl hi hj).exp 𝕂 :=
   by
   classical
-    induction' s using Finset.induction_on with a s ha ih
-    Β· simp
-    rw [Finset.noncommProd_insert_of_not_mem _ _ _ _ ha, Finset.sum_insert ha, exp_add_of_commute,
-      ih (h.mono <| Finset.subset_insert _ _)]
-    refine' Commute.sum_right _ _ _ fun i hi => _
-    exact h.of_refl (Finset.mem_insert_self _ _) (Finset.mem_insert_of_mem hi)
+  induction' s using Finset.induction_on with a s ha ih
+  Β· simp
+  rw [Finset.noncommProd_insert_of_not_mem _ _ _ _ ha, Finset.sum_insert ha, exp_add_of_commute,
+    ih (h.mono <| Finset.subset_insert _ _)]
+  refine' Commute.sum_right _ _ _ fun i hi => _
+  exact h.of_refl (Finset.mem_insert_self _ _) (Finset.mem_insert_of_mem hi)
 #align exp_sum_of_commute exp_sum_of_commute
 
 theorem exp_nsmul (n : β„•) (x : 𝔸) : exp 𝕂 (n β€’ x) = exp 𝕂 x ^ n :=
@@ -598,20 +622,20 @@ variable {𝕂 𝔸 : Type _} [IsROrC 𝕂] [NormedDivisionRing 𝔸] [NormedAlg
 
 variable (𝕂)
 
-theorem norm_exp_series_div_summable (x : 𝔸) : Summable fun n => β€–x ^ n / n !β€– :=
+theorem norm_expSeries_div_summable (x : 𝔸) : Summable fun n => β€–x ^ n / n !β€– :=
   norm_expSeries_div_summable_of_mem_ball 𝕂 x
     ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
-#align norm_exp_series_div_summable norm_exp_series_div_summable
+#align norm_exp_series_div_summable norm_expSeries_div_summable
 
 variable [CompleteSpace 𝔸]
 
-theorem exp_series_div_summable (x : 𝔸) : Summable fun n => x ^ n / n ! :=
-  summable_of_summable_norm (norm_exp_series_div_summable 𝕂 x)
-#align exp_series_div_summable exp_series_div_summable
+theorem expSeries_div_summable (x : 𝔸) : Summable fun n => x ^ n / n ! :=
+  summable_of_summable_norm (norm_expSeries_div_summable 𝕂 x)
+#align exp_series_div_summable expSeries_div_summable
 
-theorem exp_series_div_hasSum_exp (x : 𝔸) : HasSum (fun n => x ^ n / n !) (exp 𝕂 x) :=
+theorem expSeries_div_hasSum_exp (x : 𝔸) : HasSum (fun n => x ^ n / n !) (exp 𝕂 x) :=
   expSeries_div_hasSum_exp_of_mem_ball 𝕂 x ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
-#align exp_series_div_has_sum_exp exp_series_div_hasSum_exp
+#align exp_series_div_has_sum_exp expSeries_div_hasSum_exp
 
 variable {𝕂}
 
@@ -619,12 +643,14 @@ theorem exp_neg (x : 𝔸) : exp 𝕂 (-x) = (exp 𝕂 x)⁻¹ :=
   exp_neg_of_mem_ball <| (expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _
 #align exp_neg exp_neg
 
+#print exp_zsmul /-
 theorem exp_zsmul (z : β„€) (x : 𝔸) : exp 𝕂 (z β€’ x) = exp 𝕂 x ^ z :=
   by
   obtain ⟨n, rfl | rfl⟩ := z.eq_coe_or_neg
   Β· rw [zpow_ofNat, coe_nat_zsmul, exp_nsmul]
   Β· rw [zpow_neg, zpow_ofNat, neg_smul, exp_neg, coe_nat_zsmul, exp_nsmul]
 #align exp_zsmul exp_zsmul
+-/
 
 theorem exp_conj (y : 𝔸) (x : 𝔸) (hy : y β‰  0) : exp 𝕂 (y * x * y⁻¹) = y * exp 𝕂 x * y⁻¹ :=
   exp_units_conj _ (Units.mk0 y hy) x
@@ -647,12 +673,14 @@ theorem exp_add {x y : 𝔸} : exp 𝕂 (x + y) = exp 𝕂 x * exp 𝕂 y :=
     ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
 #align exp_add exp_add
 
+#print exp_sum /-
 /-- A version of `exp_sum_of_commute` for a commutative Banach-algebra. -/
 theorem exp_sum {ΞΉ} (s : Finset ΞΉ) (f : ΞΉ β†’ 𝔸) : exp 𝕂 (βˆ‘ i in s, f i) = ∏ i in s, exp 𝕂 (f i) :=
   by
   rw [exp_sum_of_commute, Finset.noncommProd_eq_prod]
   exact fun i hi j hj _ => Commute.all _ _
 #align exp_sum exp_sum
+-/
 
 end CommAlgebra
 
Diff
@@ -241,15 +241,15 @@ theorem expSeries_hasSum_exp_of_mem_ball' (x : 𝔸)
   exact expSeries_hasSum_exp_of_mem_ball x hx
 #align exp_series_has_sum_exp_of_mem_ball' expSeries_hasSum_exp_of_mem_ball'
 
-theorem hasFpowerSeriesOnBallExpOfRadiusPos (h : 0 < (expSeries 𝕂 𝔸).radius) :
-    HasFpowerSeriesOnBall (exp 𝕂) (expSeries 𝕂 𝔸) 0 (expSeries 𝕂 𝔸).radius :=
-  (expSeries 𝕂 𝔸).HasFpowerSeriesOnBall h
-#align has_fpower_series_on_ball_exp_of_radius_pos hasFpowerSeriesOnBallExpOfRadiusPos
+theorem hasFPowerSeriesOnBall_exp_of_radius_pos (h : 0 < (expSeries 𝕂 𝔸).radius) :
+    HasFPowerSeriesOnBall (exp 𝕂) (expSeries 𝕂 𝔸) 0 (expSeries 𝕂 𝔸).radius :=
+  (expSeries 𝕂 𝔸).HasFPowerSeriesOnBall h
+#align has_fpower_series_on_ball_exp_of_radius_pos hasFPowerSeriesOnBall_exp_of_radius_pos
 
-theorem hasFpowerSeriesAtExpZeroOfRadiusPos (h : 0 < (expSeries 𝕂 𝔸).radius) :
-    HasFpowerSeriesAt (exp 𝕂) (expSeries 𝕂 𝔸) 0 :=
-  (hasFpowerSeriesOnBallExpOfRadiusPos h).HasFpowerSeriesAt
-#align has_fpower_series_at_exp_zero_of_radius_pos hasFpowerSeriesAtExpZeroOfRadiusPos
+theorem hasFPowerSeriesAt_exp_zero_of_radius_pos (h : 0 < (expSeries 𝕂 𝔸).radius) :
+    HasFPowerSeriesAt (exp 𝕂) (expSeries 𝕂 𝔸) 0 :=
+  (hasFPowerSeriesOnBall_exp_of_radius_pos h).HasFPowerSeriesAt
+#align has_fpower_series_at_exp_zero_of_radius_pos hasFPowerSeriesAt_exp_zero_of_radius_pos
 
 theorem continuousOn_exp : ContinuousOn (exp 𝕂 : 𝔸 β†’ 𝔸) (EMetric.ball 0 (expSeries 𝕂 𝔸).radius) :=
   FormalMultilinearSeries.continuousOn
@@ -260,7 +260,7 @@ theorem analyticAt_exp_of_mem_ball (x : 𝔸) (hx : x ∈ EMetric.ball (0 : 𝔸
   by_cases h : (expSeries 𝕂 𝔸).radius = 0
   Β· rw [h] at hx ; exact (ENNReal.not_lt_zero hx).elim
   Β· have h := pos_iff_ne_zero.mpr h
-    exact (hasFpowerSeriesOnBallExpOfRadiusPos h).analyticAt_of_mem hx
+    exact (hasFPowerSeriesOnBall_exp_of_radius_pos h).analyticAt_of_mem hx
 #align analytic_at_exp_of_mem_ball analyticAt_exp_of_mem_ball
 
 /-- In a Banach-algebra `𝔸` over a normed field `𝕂` of characteristic zero, if `x` and `y` are
@@ -448,13 +448,13 @@ theorem exp_series_hasSum_exp' (x : 𝔸) : HasSum (fun n => (n !⁻¹ : 𝕂) 
   expSeries_hasSum_exp_of_mem_ball' x ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
 #align exp_series_has_sum_exp' exp_series_hasSum_exp'
 
-theorem expHasFpowerSeriesOnBall : HasFpowerSeriesOnBall (exp 𝕂) (expSeries 𝕂 𝔸) 0 ∞ :=
-  expSeries_radius_eq_top 𝕂 𝔸 β–Έ hasFpowerSeriesOnBallExpOfRadiusPos (expSeries_radius_pos _ _)
-#align exp_has_fpower_series_on_ball expHasFpowerSeriesOnBall
+theorem exp_hasFPowerSeriesOnBall : HasFPowerSeriesOnBall (exp 𝕂) (expSeries 𝕂 𝔸) 0 ∞ :=
+  expSeries_radius_eq_top 𝕂 𝔸 β–Έ hasFPowerSeriesOnBall_exp_of_radius_pos (expSeries_radius_pos _ _)
+#align exp_has_fpower_series_on_ball exp_hasFPowerSeriesOnBall
 
-theorem expHasFpowerSeriesAtZero : HasFpowerSeriesAt (exp 𝕂) (expSeries 𝕂 𝔸) 0 :=
-  expHasFpowerSeriesOnBall.HasFpowerSeriesAt
-#align exp_has_fpower_series_at_zero expHasFpowerSeriesAtZero
+theorem exp_hasFPowerSeriesAt_zero : HasFPowerSeriesAt (exp 𝕂) (expSeries 𝕂 𝔸) 0 :=
+  exp_hasFPowerSeriesOnBall.HasFPowerSeriesAt
+#align exp_has_fpower_series_at_zero exp_hasFPowerSeriesAt_zero
 
 @[continuity]
 theorem exp_continuous : Continuous (exp 𝕂 : 𝔸 β†’ 𝔸) :=
Diff
@@ -258,7 +258,7 @@ theorem continuousOn_exp : ContinuousOn (exp 𝕂 : 𝔸 β†’ 𝔸) (EMetric.ball
 theorem analyticAt_exp_of_mem_ball (x : 𝔸) (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     AnalyticAt 𝕂 (exp 𝕂) x := by
   by_cases h : (expSeries 𝕂 𝔸).radius = 0
-  Β· rw [h] at hx; exact (ENNReal.not_lt_zero hx).elim
+  Β· rw [h] at hx ; exact (ENNReal.not_lt_zero hx).elim
   Β· have h := pos_iff_ne_zero.mpr h
     exact (hasFpowerSeriesOnBallExpOfRadiusPos h).analyticAt_of_mem hx
 #align analytic_at_exp_of_mem_ball analyticAt_exp_of_mem_ball
Diff
@@ -69,7 +69,7 @@ We prove most result for an arbitrary field `𝕂`, and then specialize to `𝕂
 
 open Filter IsROrC ContinuousMultilinearMap NormedField Asymptotics
 
-open Nat Topology BigOperators ENNReal
+open scoped Nat Topology BigOperators ENNReal
 
 section TopologicalAlgebra
 
Diff
@@ -258,8 +258,7 @@ theorem continuousOn_exp : ContinuousOn (exp 𝕂 : 𝔸 β†’ 𝔸) (EMetric.ball
 theorem analyticAt_exp_of_mem_ball (x : 𝔸) (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     AnalyticAt 𝕂 (exp 𝕂) x := by
   by_cases h : (expSeries 𝕂 𝔸).radius = 0
-  Β· rw [h] at hx
-    exact (ENNReal.not_lt_zero hx).elim
+  Β· rw [h] at hx; exact (ENNReal.not_lt_zero hx).elim
   Β· have h := pos_iff_ne_zero.mpr h
     exact (hasFpowerSeriesOnBallExpOfRadiusPos h).analyticAt_of_mem hx
 #align analytic_at_exp_of_mem_ball analyticAt_exp_of_mem_ball
@@ -316,9 +315,7 @@ theorem isUnit_exp_of_mem_ball [CharZero 𝕂] {x : 𝔸}
 
 theorem invOf_exp_of_mem_ball [CharZero 𝕂] {x : 𝔸}
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) [Invertible (exp 𝕂 x)] :
-    β…Ÿ (exp 𝕂 x) = exp 𝕂 (-x) := by
-  letI := invertibleExpOfMemBall hx
-  convert(rfl : β…Ÿ (exp 𝕂 x) = _)
+    β…Ÿ (exp 𝕂 x) = exp 𝕂 (-x) := by letI := invertibleExpOfMemBall hx; convert(rfl : β…Ÿ (exp 𝕂 x) = _)
 #align inv_of_exp_of_mem_ball invOf_exp_of_mem_ball
 
 /-- Any continuous ring homomorphism commutes with `exp`. -/
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anatole Dedecker, Eric Wieser
 
 ! This file was ported from Lean 3 source module analysis.normed_space.exponential
-! leanprover-community/mathlib commit 3f655f5297b030a87d641ad4e825af8d9679eb0b
+! leanprover-community/mathlib commit 62748956a1ece9b26b33243e2e3a2852176666f5
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -459,6 +459,7 @@ theorem expHasFpowerSeriesAtZero : HasFpowerSeriesAt (exp 𝕂) (expSeries 𝕂
   expHasFpowerSeriesOnBall.HasFpowerSeriesAt
 #align exp_has_fpower_series_at_zero expHasFpowerSeriesAtZero
 
+@[continuity]
 theorem exp_continuous : Continuous (exp 𝕂 : 𝔸 β†’ 𝔸) :=
   by
   rw [continuous_iff_continuousOn_univ, ← Metric.eball_top_eq_univ (0 : 𝔸), ←
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anatole Dedecker, Eric Wieser
 
 ! This file was ported from Lean 3 source module analysis.normed_space.exponential
-! leanprover-community/mathlib commit da3fc4a33ff6bc75f077f691dc94c217b8d41559
+! leanprover-community/mathlib commit 3f655f5297b030a87d641ad4e825af8d9679eb0b
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -409,7 +409,7 @@ theorem expSeries_radius_eq_top : (expSeries 𝕂 𝔸).radius = ∞ :=
   refine' summable_of_norm_bounded_eventually _ (Real.summable_pow_div_factorial r) _
   filter_upwards [eventually_cofinite_ne 0]with n hn
   rw [norm_mul, norm_norm (expSeries 𝕂 𝔸 n), expSeries, norm_smul, norm_inv, norm_pow,
-    NNReal.norm_eq, norm_eq_abs, abs_cast_nat, mul_comm, ← mul_assoc, ← div_eq_mul_inv]
+    NNReal.norm_eq, norm_nat_cast, mul_comm, ← mul_assoc, ← div_eq_mul_inv]
   have : β€–ContinuousMultilinearMap.mkPiAlgebraFin 𝕂 n 𝔸‖ ≀ 1 :=
     norm_mk_pi_algebra_fin_le_of_pos (Nat.pos_of_ne_zero hn)
   exact mul_le_of_le_one_right (div_nonneg (pow_nonneg r.coe_nonneg n) n !.cast_nonneg) this
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anatole Dedecker, Eric Wieser
 
 ! This file was ported from Lean 3 source module analysis.normed_space.exponential
-! leanprover-community/mathlib commit 1e3201306d4d9eb1fd54c60d7c4510ad5126f6f9
+! leanprover-community/mathlib commit da3fc4a33ff6bc75f077f691dc94c217b8d41559
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -112,18 +112,17 @@ theorem exp_eq_tsum : exp 𝕂 = fun x : 𝔸 => βˆ‘' n : β„•, (n !⁻¹ : 𝕂)
   funext expSeries_sum_eq
 #align exp_eq_tsum exp_eq_tsum
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (n Β«expr βˆ‰ Β» ({0} : finset exprβ„•())) -/
-@[simp]
-theorem exp_zero [T2Space 𝔸] : exp 𝕂 (0 : 𝔸) = 1 :=
+theorem expSeries_apply_zero (n : β„•) : (expSeries 𝕂 𝔸 n fun _ => (0 : 𝔸)) = Pi.single 0 1 n :=
   by
-  suffices (fun x : 𝔸 => βˆ‘' n : β„•, (n !⁻¹ : 𝕂) β€’ x ^ n) 0 = βˆ‘' n : β„•, if n = 0 then 1 else 0
-    by
-    have key : βˆ€ (n) (_ : n βˆ‰ ({0} : Finset β„•)), (if n = 0 then (1 : 𝔸) else 0) = 0 := fun n hn =>
-      if_neg (finset.not_mem_singleton.mp hn)
-    rw [exp_eq_tsum, this, tsum_eq_sum key, Finset.sum_singleton]
-    simp
-  refine' tsum_congr fun n => _
-  split_ifs with h h <;> simp [h]
+  rw [expSeries_apply_eq]
+  cases n
+  Β· rw [pow_zero, Nat.factorial_zero, Nat.cast_one, inv_one, one_smul, Pi.single_eq_same]
+  Β· rw [zero_pow (Nat.succ_pos _), smul_zero, Pi.single_eq_of_ne n.succ_ne_zero]
+#align exp_series_apply_zero expSeries_apply_zero
+
+@[simp]
+theorem exp_zero [T2Space 𝔸] : exp 𝕂 (0 : 𝔸) = 1 := by
+  simp_rw [exp_eq_tsum, ← expSeries_apply_eq, expSeries_apply_zero, tsum_pi_single]
 #align exp_zero exp_zero
 
 @[simp]
Diff
@@ -319,7 +319,7 @@ theorem invOf_exp_of_mem_ball [CharZero 𝕂] {x : 𝔸}
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) [Invertible (exp 𝕂 x)] :
     β…Ÿ (exp 𝕂 x) = exp 𝕂 (-x) := by
   letI := invertibleExpOfMemBall hx
-  convert (rfl : β…Ÿ (exp 𝕂 x) = _)
+  convert(rfl : β…Ÿ (exp 𝕂 x) = _)
 #align inv_of_exp_of_mem_ball invOf_exp_of_mem_ball
 
 /-- Any continuous ring homomorphism commutes with `exp`. -/
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anatole Dedecker, Eric Wieser
 
 ! This file was ported from Lean 3 source module analysis.normed_space.exponential
-! leanprover-community/mathlib commit ccf84e0d918668460a34aa19d02fe2e0e2286da0
+! leanprover-community/mathlib commit 1e3201306d4d9eb1fd54c60d7c4510ad5126f6f9
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -143,6 +143,11 @@ theorem star_exp [T2Space 𝔸] [StarRing 𝔸] [ContinuousStar 𝔸] (x : 𝔸)
 
 variable (𝕂)
 
+theorem IsSelfAdjoint.exp [T2Space 𝔸] [StarRing 𝔸] [ContinuousStar 𝔸] {x : 𝔸}
+    (h : IsSelfAdjoint x) : IsSelfAdjoint (exp 𝕂 x) :=
+  (star_exp x).trans <| h.symm β–Έ rfl
+#align is_self_adjoint.exp IsSelfAdjoint.exp
+
 theorem Commute.exp_right [T2Space 𝔸] {x y : 𝔸} (h : Commute x y) : Commute x (exp 𝕂 y) :=
   by
   rw [exp_eq_tsum]
@@ -495,6 +500,13 @@ theorem Ring.inverse_exp (x : 𝔸) : Ring.inverse (exp 𝕂 x) = exp 𝕂 (-x)
   Ring.inverse_invertible _
 #align ring.inverse_exp Ring.inverse_exp
 
+theorem exp_mem_unitary_of_mem_skewAdjoint [StarRing 𝔸] [ContinuousStar 𝔸] {x : 𝔸}
+    (h : x ∈ skewAdjoint 𝔸) : exp 𝕂 x ∈ unitary 𝔸 := by
+  rw [unitary.mem_iff, star_exp, skew_adjoint.mem_iff.mp h, ←
+    exp_add_of_commute (Commute.refl x).neg_left, ← exp_add_of_commute (Commute.refl x).neg_right,
+    add_left_neg, add_right_neg, exp_zero, and_self_iff]
+#align exp_mem_unitary_of_mem_skew_adjoint exp_mem_unitary_of_mem_skewAdjoint
+
 end
 
 /-- In a Banach-algebra `𝔸` over `𝕂 = ℝ` or `𝕂 = β„‚`, if a family of elements `f i` mutually
Diff
@@ -193,13 +193,13 @@ variable {𝕂 𝔸 𝔹 : Type _} [NontriviallyNormedField 𝕂]
 variable [NormedRing 𝔸] [NormedRing 𝔹] [NormedAlgebra 𝕂 𝔸] [NormedAlgebra 𝕂 𝔹]
 
 theorem norm_expSeries_summable_of_mem_ball (x : 𝔸)
-    (hx : x ∈ Emetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     Summable fun n => β€–expSeries 𝕂 𝔸 n fun _ => xβ€– :=
   (expSeries 𝕂 𝔸).summable_norm_apply hx
 #align norm_exp_series_summable_of_mem_ball norm_expSeries_summable_of_mem_ball
 
 theorem norm_expSeries_summable_of_mem_ball' (x : 𝔸)
-    (hx : x ∈ Emetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     Summable fun n => β€–(n !⁻¹ : 𝕂) β€’ x ^ nβ€– :=
   by
   change Summable (norm ∘ _)
@@ -212,25 +212,25 @@ section CompleteAlgebra
 variable [CompleteSpace 𝔸]
 
 theorem expSeries_summable_of_mem_ball (x : 𝔸)
-    (hx : x ∈ Emetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     Summable fun n => expSeries 𝕂 𝔸 n fun _ => x :=
   summable_of_summable_norm (norm_expSeries_summable_of_mem_ball x hx)
 #align exp_series_summable_of_mem_ball expSeries_summable_of_mem_ball
 
 theorem expSeries_summable_of_mem_ball' (x : 𝔸)
-    (hx : x ∈ Emetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     Summable fun n => (n !⁻¹ : 𝕂) β€’ x ^ n :=
   summable_of_summable_norm (norm_expSeries_summable_of_mem_ball' x hx)
 #align exp_series_summable_of_mem_ball' expSeries_summable_of_mem_ball'
 
 theorem expSeries_hasSum_exp_of_mem_ball (x : 𝔸)
-    (hx : x ∈ Emetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     HasSum (fun n => expSeries 𝕂 𝔸 n fun _ => x) (exp 𝕂 x) :=
   FormalMultilinearSeries.hasSum (expSeries 𝕂 𝔸) hx
 #align exp_series_has_sum_exp_of_mem_ball expSeries_hasSum_exp_of_mem_ball
 
 theorem expSeries_hasSum_exp_of_mem_ball' (x : 𝔸)
-    (hx : x ∈ Emetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     HasSum (fun n => (n !⁻¹ : 𝕂) β€’ x ^ n) (exp 𝕂 x) :=
   by
   rw [← expSeries_apply_eq']
@@ -247,11 +247,11 @@ theorem hasFpowerSeriesAtExpZeroOfRadiusPos (h : 0 < (expSeries 𝕂 𝔸).radiu
   (hasFpowerSeriesOnBallExpOfRadiusPos h).HasFpowerSeriesAt
 #align has_fpower_series_at_exp_zero_of_radius_pos hasFpowerSeriesAtExpZeroOfRadiusPos
 
-theorem continuousOn_exp : ContinuousOn (exp 𝕂 : 𝔸 β†’ 𝔸) (Emetric.ball 0 (expSeries 𝕂 𝔸).radius) :=
+theorem continuousOn_exp : ContinuousOn (exp 𝕂 : 𝔸 β†’ 𝔸) (EMetric.ball 0 (expSeries 𝕂 𝔸).radius) :=
   FormalMultilinearSeries.continuousOn
 #align continuous_on_exp continuousOn_exp
 
-theorem analyticAt_exp_of_mem_ball (x : 𝔸) (hx : x ∈ Emetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
+theorem analyticAt_exp_of_mem_ball (x : 𝔸) (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     AnalyticAt 𝕂 (exp 𝕂) x := by
   by_cases h : (expSeries 𝕂 𝔸).radius = 0
   Β· rw [h] at hx
@@ -263,8 +263,8 @@ theorem analyticAt_exp_of_mem_ball (x : 𝔸) (hx : x ∈ Emetric.ball (0 : 𝔸
 /-- In a Banach-algebra `𝔸` over a normed field `𝕂` of characteristic zero, if `x` and `y` are
 in the disk of convergence and commute, then `exp 𝕂 (x + y) = (exp 𝕂 x) * (exp 𝕂 y)`. -/
 theorem exp_add_of_commute_of_mem_ball [CharZero 𝕂] {x y : 𝔸} (hxy : Commute x y)
-    (hx : x ∈ Emetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius)
-    (hy : y ∈ Emetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : exp 𝕂 (x + y) = exp 𝕂 x * exp 𝕂 y :=
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius)
+    (hy : y ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : exp 𝕂 (x + y) = exp 𝕂 x * exp 𝕂 y :=
   by
   rw [exp_eq_tsum,
     tsum_mul_tsum_eq_tsum_sum_antidiagonal_of_summable_norm
@@ -284,34 +284,34 @@ theorem exp_add_of_commute_of_mem_ball [CharZero 𝕂] {x y : 𝔸} (hxy : Commu
 
 /-- `exp 𝕂 x` has explicit two-sided inverse `exp 𝕂 (-x)`. -/
 noncomputable def invertibleExpOfMemBall [CharZero 𝕂] {x : 𝔸}
-    (hx : x ∈ Emetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : Invertible (exp 𝕂 x)
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : Invertible (exp 𝕂 x)
     where
   invOf := exp 𝕂 (-x)
   invOf_mul_self :=
     by
-    have hnx : -x ∈ Emetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius :=
+    have hnx : -x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius :=
       by
-      rw [Emetric.mem_ball, ← neg_zero, edist_neg_neg]
+      rw [EMetric.mem_ball, ← neg_zero, edist_neg_neg]
       exact hx
     rw [← exp_add_of_commute_of_mem_ball (Commute.neg_left <| Commute.refl x) hnx hx, neg_add_self,
       exp_zero]
   mul_invOf_self :=
     by
-    have hnx : -x ∈ Emetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius :=
+    have hnx : -x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius :=
       by
-      rw [Emetric.mem_ball, ← neg_zero, edist_neg_neg]
+      rw [EMetric.mem_ball, ← neg_zero, edist_neg_neg]
       exact hx
     rw [← exp_add_of_commute_of_mem_ball (Commute.neg_right <| Commute.refl x) hx hnx, add_neg_self,
       exp_zero]
 #align invertible_exp_of_mem_ball invertibleExpOfMemBall
 
 theorem isUnit_exp_of_mem_ball [CharZero 𝕂] {x : 𝔸}
-    (hx : x ∈ Emetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : IsUnit (exp 𝕂 x) :=
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : IsUnit (exp 𝕂 x) :=
   @isUnit_of_invertible _ _ _ (invertibleExpOfMemBall hx)
 #align is_unit_exp_of_mem_ball isUnit_exp_of_mem_ball
 
 theorem invOf_exp_of_mem_ball [CharZero 𝕂] {x : 𝔸}
-    (hx : x ∈ Emetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) [Invertible (exp 𝕂 x)] :
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) [Invertible (exp 𝕂 x)] :
     β…Ÿ (exp 𝕂 x) = exp 𝕂 (-x) := by
   letI := invertibleExpOfMemBall hx
   convert (rfl : β…Ÿ (exp 𝕂 x) = _)
@@ -319,7 +319,7 @@ theorem invOf_exp_of_mem_ball [CharZero 𝕂] {x : 𝔸}
 
 /-- Any continuous ring homomorphism commutes with `exp`. -/
 theorem map_exp_of_mem_ball {F} [RingHomClass F 𝔸 𝔹] (f : F) (hf : Continuous f) (x : 𝔸)
-    (hx : x ∈ Emetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : f (exp 𝕂 x) = exp 𝕂 (f x) :=
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : f (exp 𝕂 x) = exp 𝕂 (f x) :=
   by
   rw [exp_eq_tsum, exp_eq_tsum]
   refine' ((expSeries_summable_of_mem_ball' _ hx).HasSum.map f hf).tsum_eq.symm.trans _
@@ -330,7 +330,7 @@ theorem map_exp_of_mem_ball {F} [RingHomClass F 𝔸 𝔹] (f : F) (hf : Continu
 end CompleteAlgebra
 
 theorem algebraMap_exp_comm_of_mem_ball [CompleteSpace 𝕂] (x : 𝕂)
-    (hx : x ∈ Emetric.ball (0 : 𝕂) (expSeries 𝕂 𝕂).radius) :
+    (hx : x ∈ EMetric.ball (0 : 𝕂) (expSeries 𝕂 𝕂).radius) :
     algebraMap 𝕂 𝔸 (exp 𝕂 x) = exp 𝕂 (algebraMap 𝕂 𝔸 x) :=
   map_exp_of_mem_ball _ (continuous_algebraMap 𝕂 𝔸) _ hx
 #align algebra_map_exp_comm_of_mem_ball algebraMap_exp_comm_of_mem_ball
@@ -344,7 +344,7 @@ variable {𝕂 𝔸 : Type _} [NontriviallyNormedField 𝕂] [NormedDivisionRing
 variable (𝕂)
 
 theorem norm_expSeries_div_summable_of_mem_ball (x : 𝔸)
-    (hx : x ∈ Emetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : Summable fun n => β€–x ^ n / n !β€– :=
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : Summable fun n => β€–x ^ n / n !β€– :=
   by
   change Summable (norm ∘ _)
   rw [← expSeries_apply_eq_div' x]
@@ -352,12 +352,12 @@ theorem norm_expSeries_div_summable_of_mem_ball (x : 𝔸)
 #align norm_exp_series_div_summable_of_mem_ball norm_expSeries_div_summable_of_mem_ball
 
 theorem expSeries_div_summable_of_mem_ball [CompleteSpace 𝔸] (x : 𝔸)
-    (hx : x ∈ Emetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : Summable fun n => x ^ n / n ! :=
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : Summable fun n => x ^ n / n ! :=
   summable_of_summable_norm (norm_expSeries_div_summable_of_mem_ball 𝕂 x hx)
 #align exp_series_div_summable_of_mem_ball expSeries_div_summable_of_mem_ball
 
 theorem expSeries_div_hasSum_exp_of_mem_ball [CompleteSpace 𝔸] (x : 𝔸)
-    (hx : x ∈ Emetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     HasSum (fun n => x ^ n / n !) (exp 𝕂 x) :=
   by
   rw [← expSeries_apply_eq_div' x]
@@ -367,7 +367,7 @@ theorem expSeries_div_hasSum_exp_of_mem_ball [CompleteSpace 𝔸] (x : 𝔸)
 variable {𝕂}
 
 theorem exp_neg_of_mem_ball [CharZero 𝕂] [CompleteSpace 𝔸] {x : 𝔸}
-    (hx : x ∈ Emetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : exp 𝕂 (-x) = (exp 𝕂 x)⁻¹ :=
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : exp 𝕂 (-x) = (exp 𝕂 x)⁻¹ :=
   letI := invertibleExpOfMemBall hx
   invOf_eq_inv (exp 𝕂 x)
 #align exp_neg_of_mem_ball exp_neg_of_mem_ball
@@ -382,8 +382,8 @@ variable {𝕂 𝔸 : Type _} [NontriviallyNormedField 𝕂] [NormedCommRing 
 /-- In a commutative Banach-algebra `𝔸` over a normed field `𝕂` of characteristic zero,
 `exp 𝕂 (x+y) = (exp 𝕂 x) * (exp 𝕂 y)` for all `x`, `y` in the disk of convergence. -/
 theorem exp_add_of_mem_ball [CharZero 𝕂] {x y : 𝔸}
-    (hx : x ∈ Emetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius)
-    (hy : y ∈ Emetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : exp 𝕂 (x + y) = exp 𝕂 x * exp 𝕂 y :=
+    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius)
+    (hy : y ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : exp 𝕂 (x + y) = exp 𝕂 x * exp 𝕂 y :=
   exp_add_of_commute_of_mem_ball (Commute.all x y) hx hy
 #align exp_add_of_mem_ball exp_add_of_mem_ball
 
Diff
@@ -112,7 +112,7 @@ theorem exp_eq_tsum : exp 𝕂 = fun x : 𝔸 => βˆ‘' n : β„•, (n !⁻¹ : 𝕂)
   funext expSeries_sum_eq
 #align exp_eq_tsum exp_eq_tsum
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (n Β«expr βˆ‰ Β» ({0} : finset exprβ„•())) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (n Β«expr βˆ‰ Β» ({0} : finset exprβ„•())) -/
 @[simp]
 theorem exp_zero [T2Space 𝔸] : exp 𝕂 (0 : 𝔸) = 1 :=
   by
Diff
@@ -69,7 +69,7 @@ We prove most result for an arbitrary field `𝕂`, and then specialize to `𝕂
 
 open Filter IsROrC ContinuousMultilinearMap NormedField Asymptotics
 
-open Nat Topology BigOperators Ennreal
+open Nat Topology BigOperators ENNReal
 
 section TopologicalAlgebra
 
@@ -255,7 +255,7 @@ theorem analyticAt_exp_of_mem_ball (x : 𝔸) (hx : x ∈ Emetric.ball (0 : 𝔸
     AnalyticAt 𝕂 (exp 𝕂) x := by
   by_cases h : (expSeries 𝕂 𝔸).radius = 0
   Β· rw [h] at hx
-    exact (Ennreal.not_lt_zero hx).elim
+    exact (ENNReal.not_lt_zero hx).elim
   Β· have h := pos_iff_ne_zero.mpr h
     exact (hasFpowerSeriesOnBallExpOfRadiusPos h).analyticAt_of_mem hx
 #align analytic_at_exp_of_mem_ball analyticAt_exp_of_mem_ball

Changes in mathlib4

mathlib3
mathlib4
chore: Rename nat_cast/int_cast/rat_cast to natCast/intCast/ratCast (#11486)

Now that I am defining NNRat.cast, I want a definitive answer to this naming issue. Plenty of lemmas in mathlib already use natCast/intCast/ratCast over nat_cast/int_cast/rat_cast, and this matches with the general expectation that underscore-separated name parts correspond to a single declaration.

Diff
@@ -158,7 +158,7 @@ theorem exp_unop [T2Space 𝔸] (x : 𝔸ᡐᡒᡖ) : exp 𝕂 (MulOpposite.unop
 
 theorem star_exp [T2Space 𝔸] [StarRing 𝔸] [ContinuousStar 𝔸] (x : 𝔸) :
     star (exp 𝕂 x) = exp 𝕂 (star x) := by
-  simp_rw [exp_eq_tsum, ← star_pow, ← star_inv_nat_cast_smul, ← tsum_star]
+  simp_rw [exp_eq_tsum, ← star_pow, ← star_inv_natCast_smul, ← tsum_star]
 #align star_exp NormedSpace.star_exp
 
 variable (𝕂)
@@ -191,7 +191,7 @@ variable {𝕂 𝔸 : Type*} [Field 𝕂] [DivisionRing 𝔸] [Algebra 𝕂 𝔸
 
 theorem expSeries_apply_eq_div (x : 𝔸) (n : β„•) : (expSeries 𝕂 𝔸 n fun _ => x) = x ^ n / n ! := by
   rw [div_eq_mul_inv, ← (Nat.cast_commute n ! (x ^ n)).inv_leftβ‚€.eq, ← smul_eq_mul,
-    expSeries_apply_eq, inv_nat_cast_smul_eq 𝕂 𝔸]
+    expSeries_apply_eq, inv_natCast_smul_eq 𝕂 𝔸]
 #align exp_series_apply_eq_div NormedSpace.expSeries_apply_eq_div
 
 theorem expSeries_apply_eq_div' (x : 𝔸) :
@@ -338,7 +338,7 @@ theorem map_exp_of_mem_ball {F} [FunLike F 𝔸 𝔹] [RingHomClass F 𝔸 𝔹]
   rw [exp_eq_tsum, exp_eq_tsum]
   refine' ((expSeries_summable_of_mem_ball' _ hx).hasSum.map f hf).tsum_eq.symm.trans _
   dsimp only [Function.comp_def]
-  simp_rw [map_inv_nat_cast_smul f 𝕂 𝕂, map_pow]
+  simp_rw [map_inv_natCast_smul f 𝕂 𝕂, map_pow]
 #align map_exp_of_mem_ball NormedSpace.map_exp_of_mem_ball
 
 end CompleteAlgebra
@@ -672,7 +672,7 @@ variable (𝕂 𝕂' 𝔸 : Type*) [Field 𝕂] [Field 𝕂'] [Ring 𝔸] [Algeb
 `expSeries` on `𝔸`. -/
 theorem expSeries_eq_expSeries (n : β„•) (x : 𝔸) :
     (expSeries 𝕂 𝔸 n fun _ => x) = expSeries 𝕂' 𝔸 n fun _ => x := by
-  rw [expSeries_apply_eq, expSeries_apply_eq, inv_nat_cast_smul_eq 𝕂 𝕂']
+  rw [expSeries_apply_eq, expSeries_apply_eq, inv_natCast_smul_eq 𝕂 𝕂']
 #align exp_series_eq_exp_series NormedSpace.expSeries_eq_expSeries
 
 /-- If a normed ring `𝔸` is a normed algebra over two fields, then they define the same
chore(Analysis): fix mathlib3 names; automated fixes (#11950)
Diff
@@ -32,34 +32,35 @@ We prove most result for an arbitrary field `𝕂`, and then specialize to `𝕂
 
 ### General case
 
-- `exp_add_of_commute_of_mem_ball` : if `𝕂` has characteristic zero, then given two commuting
-  elements `x` and `y` in the disk of convergence, we have
+- `NormedSpace.exp_add_of_commute_of_mem_ball` : if `𝕂` has characteristic zero,
+  then given two commuting elements `x` and `y` in the disk of convergence, we have
   `exp 𝕂 (x+y) = (exp 𝕂 x) * (exp 𝕂 y)`
-- `exp_add_of_mem_ball` : if `𝕂` has characteristic zero and `𝔸` is commutative, then given two
-  elements `x` and `y` in the disk of convergence, we have
+- `NormedSpace.exp_add_of_mem_ball` : if `𝕂` has characteristic zero and `𝔸` is commutative,
+  then given two elements `x` and `y` in the disk of convergence, we have
   `exp 𝕂 (x+y) = (exp 𝕂 x) * (exp 𝕂 y)`
-- `exp_neg_of_mem_ball` : if `𝕂` has characteristic zero and `𝔸` is a division ring, then given an
-  element `x` in the disk of convergence, we have `exp 𝕂 (-x) = (exp 𝕂 x)⁻¹`.
+- `NormedSpace.exp_neg_of_mem_ball` : if `𝕂` has characteristic zero and `𝔸` is a division ring,
+  then given an element `x` in the disk of convergence, we have `exp 𝕂 (-x) = (exp 𝕂 x)⁻¹`.
 
 ### `𝕂 = ℝ` or `𝕂 = β„‚`
 
 - `expSeries_radius_eq_top` : the `FormalMultilinearSeries` defining `exp 𝕂` has infinite
   radius of convergence
-- `exp_add_of_commute` : given two commuting elements `x` and `y`, we have
+- `NormedSpace.exp_add_of_commute` : given two commuting elements `x` and `y`, we have
   `exp 𝕂 (x+y) = (exp 𝕂 x) * (exp 𝕂 y)`
-- `exp_add` : if `𝔸` is commutative, then we have `exp 𝕂 (x+y) = (exp 𝕂 x) * (exp 𝕂 y)`
+- `NormedSpace.exp_add` : if `𝔸` is commutative, then we have `exp 𝕂 (x+y) = (exp 𝕂 x) * (exp 𝕂 y)`
   for any `x` and `y`
-- `exp_neg` : if `𝔸` is a division ring, then we have `exp 𝕂 (-x) = (exp 𝕂 x)⁻¹`.
-- `exp_sum_of_commute` : the analogous result to `exp_add_of_commute` for `Finset.sum`.
-- `exp_sum` : the analogous result to `exp_add` for `Finset.sum`.
-- `exp_nsmul` : repeated addition in the domain corresponds to repeated multiplication in the
-  codomain.
-- `exp_zsmul` : repeated addition in the domain corresponds to repeated multiplication in the
-  codomain.
+- `NormedSpace.exp_neg` : if `𝔸` is a division ring, then we have `exp 𝕂 (-x) = (exp 𝕂 x)⁻¹`.
+- `exp_sum_of_commute` : the analogous result to `NormedSpace.exp_add_of_commute` for `Finset.sum`.
+- `exp_sum` : the analogous result to `NormedSpace.exp_add` for `Finset.sum`.
+- `NormedSpace.exp_nsmul` : repeated addition in the domain corresponds to
+  repeated multiplication in the codomain.
+- `NormedSpace.exp_zsmul` : repeated addition in the domain corresponds to
+  repeated multiplication in the codomain.
 
 ### Other useful compatibility results
 
-- `exp_eq_exp` : if `𝔸` is a normed algebra over two fields `𝕂` and `𝕂'`, then `exp 𝕂 = exp 𝕂' 𝔸`
+- `NormedSpace.exp_eq_exp` : if `𝔸` is a normed algebra over two fields `𝕂` and `𝕂'`,
+  then `exp 𝕂 = exp 𝕂' 𝔸`
 
 ### Notes
 
@@ -75,7 +76,7 @@ open Real
 #time example (x : ℝ) : 0 < exp x      := exp_pos _ -- 250ms
 #time example (x : ℝ) : 0 < Real.exp x := exp_pos _ -- 2ms
 ```
-This is because `exp x` tries the `exp` function defined here,
+This is because `exp x` tries the `NormedSpace.exp` function defined here,
 and generates a slow coercion search from `Real` to `Type`, to fit the first argument here.
 We will resolve this slow coercion separately,
 but we want to move `exp` out of the root namespace in any case to avoid this ambiguity.
@@ -537,7 +538,7 @@ theorem exp_nsmul (n : β„•) (x : 𝔸) : exp 𝕂 (n β€’ x) = exp 𝕂 x ^ n :=
 
 variable (𝕂)
 
-/-- Any continuous ring homomorphism commutes with `exp`. -/
+/-- Any continuous ring homomorphism commutes with `NormedSpace.exp`. -/
 theorem map_exp {F} [FunLike F 𝔸 𝔹] [RingHomClass F 𝔸 𝔹] (f : F) (hf : Continuous f) (x : 𝔸) :
     f (exp 𝕂 x) = exp 𝕂 (f x) :=
   map_exp_of_mem_ball f hf x <| (expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _
@@ -650,7 +651,7 @@ theorem exp_add {x y : 𝔸} : exp 𝕂 (x + y) = exp 𝕂 x * exp 𝕂 y :=
     ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
 #align exp_add NormedSpace.exp_add
 
-/-- A version of `exp_sum_of_commute` for a commutative Banach-algebra. -/
+/-- A version of `NormedSpace.exp_sum_of_commute` for a commutative Banach-algebra. -/
 theorem exp_sum {ΞΉ} (s : Finset ΞΉ) (f : ΞΉ β†’ 𝔸) : exp 𝕂 (βˆ‘ i in s, f i) = ∏ i in s, exp 𝕂 (f i) := by
   rw [exp_sum_of_commute, Finset.noncommProd_eq_prod]
   exact fun i _hi j _hj _ => Commute.all _ _
@@ -687,7 +688,7 @@ theorem exp_ℝ_β„‚_eq_exp_β„‚_β„‚ : (exp ℝ : β„‚ β†’ β„‚) = exp β„‚ :=
   exp_eq_exp ℝ β„‚ β„‚
 #align exp_ℝ_β„‚_eq_exp_β„‚_β„‚ NormedSpace.exp_ℝ_β„‚_eq_exp_β„‚_β„‚
 
-/-- A version of `Complex.ofReal_exp` for `exp` instead of `Complex.exp` -/
+/-- A version of `Complex.ofReal_exp` for `NormedSpace.exp` instead of `Complex.exp` -/
 @[simp, norm_cast]
 theorem of_real_exp_ℝ_ℝ (r : ℝ) : ↑(exp ℝ r) = exp β„‚ (r : β„‚) :=
   (map_exp ℝ (algebraMap ℝ β„‚) (continuous_algebraMap _ _) r).trans (congr_fun exp_ℝ_β„‚_eq_exp_β„‚_β„‚ _)
change the order of operation in zsmulRec and nsmulRec (#11451)

We change the following field in the definition of an additive commutative monoid:

 nsmul_succ : βˆ€ (n : β„•) (x : G),
-  AddMonoid.nsmul (n + 1) x = x + AddMonoid.nsmul n x
+  AddMonoid.nsmul (n + 1) x = AddMonoid.nsmul n x + x

where the latter is more natural

We adjust the definitions of ^ in monoids, groups, etc. Originally there was a warning comment about why this natural order was preferred

use x * npowRec n x and not npowRec n x * x in the definition to make sure that definitional unfolding of npowRec is blocked, to avoid deep recursion issues.

but it seems to no longer apply.

Remarks on the PR :

  • pow_succ and pow_succ' have switched their meanings.
  • Most of the time, the proofs were adjusted by priming/unpriming one lemma, or exchanging left and right; a few proofs were more complicated to adjust.
  • In particular, [Mathlib/NumberTheory/RamificationInertia.lean] used Ideal.IsPrime.mul_mem_pow which is defined in [Mathlib/RingTheory/DedekindDomain/Ideal.lean]. Changing the order of operation forced me to add the symmetric lemma Ideal.IsPrime.mem_pow_mul.
  • the docstring for Cauchy condensation test in [Mathlib/Analysis/PSeries.lean] was mathematically incorrect, I added the mention that the function is antitone.
Diff
@@ -532,7 +532,7 @@ theorem exp_sum_of_commute {ΞΉ} (s : Finset ΞΉ) (f : ΞΉ β†’ 𝔸)
 theorem exp_nsmul (n : β„•) (x : 𝔸) : exp 𝕂 (n β€’ x) = exp 𝕂 x ^ n := by
   induction' n with n ih
   Β· rw [Nat.zero_eq, zero_smul, pow_zero, exp_zero]
-  Β· rw [succ_nsmul, pow_succ, exp_add_of_commute ((Commute.refl x).smul_right n), ih]
+  Β· rw [succ_nsmul, pow_succ, exp_add_of_commute ((Commute.refl x).smul_left n), ih]
 #align exp_nsmul NormedSpace.exp_nsmul
 
 variable (𝕂)
chore: Rename IsROrC to RCLike (#10819)

IsROrC contains data, which goes against the expectation that classes prefixed with Is are prop-valued. People have been complaining about this on and off, so this PR renames IsROrC to RCLike.

Diff
@@ -87,7 +87,7 @@ In the long term is may be possible to replace `Real.exp` and `Complex.exp` with
 
 namespace NormedSpace
 
-open Filter IsROrC ContinuousMultilinearMap NormedField Asymptotics
+open Filter RCLike ContinuousMultilinearMap NormedField Asymptotics
 
 open scoped Nat Topology BigOperators ENNReal
 
@@ -400,11 +400,11 @@ theorem exp_add_of_mem_ball [CharZero 𝕂] {x y : 𝔸}
 
 end AnyFieldCommAlgebra
 
-section IsROrC
+section RCLike
 
 section AnyAlgebra
 
-variable (𝕂 𝔸 𝔹 : Type*) [IsROrC 𝕂] [NormedRing 𝔸] [NormedAlgebra 𝕂 𝔸]
+variable (𝕂 𝔸 𝔹 : Type*) [RCLike 𝕂] [NormedRing 𝔸] [NormedAlgebra 𝕂 𝔸]
 variable [NormedRing 𝔹] [NormedAlgebra 𝕂 𝔹]
 
 /-- In a normed algebra `𝔸` over `𝕂 = ℝ` or `𝕂 = β„‚`, the series defining the exponential map
@@ -599,7 +599,7 @@ end AnyAlgebra
 
 section DivisionAlgebra
 
-variable {𝕂 𝔸 : Type*} [IsROrC 𝕂] [NormedDivisionRing 𝔸] [NormedAlgebra 𝕂 𝔸]
+variable {𝕂 𝔸 : Type*} [RCLike 𝕂] [NormedDivisionRing 𝔸] [NormedAlgebra 𝕂 𝔸]
 variable (𝕂)
 
 theorem norm_expSeries_div_summable (x : 𝔸) : Summable fun n => β€–(x ^ n / n ! : 𝔸)β€– :=
@@ -641,7 +641,7 @@ end DivisionAlgebra
 
 section CommAlgebra
 
-variable {𝕂 𝔸 : Type*} [IsROrC 𝕂] [NormedCommRing 𝔸] [NormedAlgebra 𝕂 𝔸] [CompleteSpace 𝔸]
+variable {𝕂 𝔸 : Type*} [RCLike 𝕂] [NormedCommRing 𝔸] [NormedAlgebra 𝕂 𝔸] [CompleteSpace 𝔸]
 
 /-- In a commutative Banach-algebra `𝔸` over `𝕂 = ℝ` or `𝕂 = β„‚`,
 `exp 𝕂 (x+y) = (exp 𝕂 x) * (exp 𝕂 y)`. -/
@@ -658,7 +658,7 @@ theorem exp_sum {ΞΉ} (s : Finset ΞΉ) (f : ΞΉ β†’ 𝔸) : exp 𝕂 (βˆ‘ i in s, f
 
 end CommAlgebra
 
-end IsROrC
+end RCLike
 
 end Normed
 
chore: Rename zpow_coe_nat to zpow_natCast (#11528)

... and add a deprecated alias for the old name. This is mostly just me discovering the power of F2

Diff
@@ -625,8 +625,8 @@ theorem exp_neg (x : 𝔸) : exp 𝕂 (-x) = (exp 𝕂 x)⁻¹ :=
 
 theorem exp_zsmul (z : β„€) (x : 𝔸) : exp 𝕂 (z β€’ x) = exp 𝕂 x ^ z := by
   obtain ⟨n, rfl | rfl⟩ := z.eq_nat_or_neg
-  Β· rw [zpow_coe_nat, coe_nat_zsmul, exp_nsmul]
-  Β· rw [zpow_neg, zpow_coe_nat, neg_smul, exp_neg, coe_nat_zsmul, exp_nsmul]
+  Β· rw [zpow_natCast, natCast_zsmul, exp_nsmul]
+  Β· rw [zpow_neg, zpow_natCast, neg_smul, exp_neg, natCast_zsmul, exp_nsmul]
 #align exp_zsmul NormedSpace.exp_zsmul
 
 theorem exp_conj (y : 𝔸) (x : 𝔸) (hy : y β‰  0) : exp 𝕂 (y * x * y⁻¹) = y * exp 𝕂 x * y⁻¹ :=
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
  for filename in files:
    if filename.endswith('.lean'):
      file_path = os.path.join(dir_path, filename)

      # Open the file and read its contents
      with open(file_path, 'r') as file:
        content = file.read()

      # Use a regular expression to replace sequences of "variable" lines separated by empty lines
      # with sequences without empty lines
      modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -213,7 +213,6 @@ section Normed
 section AnyFieldAnyAlgebra
 
 variable {𝕂 𝔸 𝔹 : Type*} [NontriviallyNormedField 𝕂]
-
 variable [NormedRing 𝔸] [NormedRing 𝔹] [NormedAlgebra 𝕂 𝔸] [NormedAlgebra 𝕂 𝔹]
 
 theorem norm_expSeries_summable_of_mem_ball (x : 𝔸)
@@ -354,7 +353,6 @@ end AnyFieldAnyAlgebra
 section AnyFieldDivisionAlgebra
 
 variable {𝕂 𝔸 : Type*} [NontriviallyNormedField 𝕂] [NormedDivisionRing 𝔸] [NormedAlgebra 𝕂 𝔸]
-
 variable (𝕂)
 
 theorem norm_expSeries_div_summable_of_mem_ball (x : 𝔸)
@@ -407,7 +405,6 @@ section IsROrC
 section AnyAlgebra
 
 variable (𝕂 𝔸 𝔹 : Type*) [IsROrC 𝕂] [NormedRing 𝔸] [NormedAlgebra 𝕂 𝔸]
-
 variable [NormedRing 𝔹] [NormedAlgebra 𝕂 𝔹]
 
 /-- In a normed algebra `𝔸` over `𝕂 = ℝ` or `𝕂 = β„‚`, the series defining the exponential map
@@ -603,7 +600,6 @@ end AnyAlgebra
 section DivisionAlgebra
 
 variable {𝕂 𝔸 : Type*} [IsROrC 𝕂] [NormedDivisionRing 𝔸] [NormedAlgebra 𝕂 𝔸]
-
 variable (𝕂)
 
 theorem norm_expSeries_div_summable (x : 𝔸) : Summable fun n => β€–(x ^ n / n ! : 𝔸)β€– :=
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -418,7 +418,7 @@ theorem expSeries_radius_eq_top : (expSeries 𝕂 𝔸).radius = ∞ := by
   filter_upwards [eventually_cofinite_ne 0] with n hn
   rw [norm_mul, norm_norm (expSeries 𝕂 𝔸 n), expSeries]
   rw [norm_smul (n ! : 𝕂)⁻¹ (ContinuousMultilinearMap.mkPiAlgebraFin 𝕂 n 𝔸)]
-  -- porting note: Lean needed this to be explicit for some reason
+  -- Porting note: Lean needed this to be explicit for some reason
   rw [norm_inv, norm_pow, NNReal.norm_eq, norm_natCast, mul_comm, ← mul_assoc, ← div_eq_mul_inv]
   have : β€–ContinuousMultilinearMap.mkPiAlgebraFin 𝕂 n 𝔸‖ ≀ 1 :=
     norm_mkPiAlgebraFin_le_of_pos (Ei := fun _ => 𝔸) (Nat.pos_of_ne_zero hn)
fix: correct statement of zpow_ofNat and ofNat_zsmul (#10969)

Previously these were syntactically identical to the corresponding zpow_coe_nat and coe_nat_zsmul lemmas, now they are about OfNat.ofNat.

Unfortunately, almost every call site uses the ofNat name to refer to Nat.cast, so the downstream proofs had to be adjusted too.

Diff
@@ -629,8 +629,8 @@ theorem exp_neg (x : 𝔸) : exp 𝕂 (-x) = (exp 𝕂 x)⁻¹ :=
 
 theorem exp_zsmul (z : β„€) (x : 𝔸) : exp 𝕂 (z β€’ x) = exp 𝕂 x ^ z := by
   obtain ⟨n, rfl | rfl⟩ := z.eq_nat_or_neg
-  Β· rw [zpow_ofNat, coe_nat_zsmul, exp_nsmul]
-  Β· rw [zpow_neg, zpow_ofNat, neg_smul, exp_neg, coe_nat_zsmul, exp_nsmul]
+  Β· rw [zpow_coe_nat, coe_nat_zsmul, exp_nsmul]
+  Β· rw [zpow_neg, zpow_coe_nat, neg_smul, exp_neg, coe_nat_zsmul, exp_nsmul]
 #align exp_zsmul NormedSpace.exp_zsmul
 
 theorem exp_conj (y : 𝔸) (x : 𝔸) (hy : y β‰  0) : exp 𝕂 (y * x * y⁻¹) = y * exp 𝕂 x * y⁻¹ :=
refactor(Data/FunLike): use unbundled inheritance from FunLike (#8386)

The FunLike hierarchy is very big and gets scanned through each time we need a coercion (via the CoeFun instance). It looks like unbundled inheritance suits Lean 4 better here. The only class that still extends FunLike is EquivLike, since that has a custom coe_injective' field that is easier to implement. All other classes should take FunLike or EquivLike as a parameter.

Zulip thread

Important changes

Previously, morphism classes would be Type-valued and extend FunLike:

/-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms.
You should extend this class when you extend `MyHom`. -/
class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B]
  extends FunLike F A B :=
(map_op : βˆ€ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y))

After this PR, they should be Prop-valued and take FunLike as a parameter:

/-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms.
You should extend this class when you extend `MyHom`. -/
class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B]
  [FunLike F A B] : Prop :=
(map_op : βˆ€ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y))

(Note that A B stay marked as outParam even though they are not purely required to be so due to the FunLike parameter already filling them in. This is required to see through type synonyms, which is important in the category theory library. Also, I think keeping them as outParam is slightly faster.)

Similarly, MyEquivClass should take EquivLike as a parameter.

As a result, every mention of [MyHomClass F A B] should become [FunLike F A B] [MyHomClass F A B].

Remaining issues

Slower (failing) search

While overall this gives some great speedups, there are some cases that are noticeably slower. In particular, a failing application of a lemma such as map_mul is more expensive. This is due to suboptimal processing of arguments. For example:

variable [FunLike F M N] [Mul M] [Mul N] (f : F) (x : M) (y : M)

theorem map_mul [MulHomClass F M N] : f (x * y) = f x * f y

example [AddHomClass F A B] : f (x * y) = f x * f y := map_mul f _ _

Before this PR, applying map_mul f gives the goals [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]. Since M and N are out_params, [MulHomClass F ?M ?N] is synthesized first, supplies values for ?M and ?N and then the Mul M and Mul N instances can be found.

After this PR, the goals become [FunLike F ?M ?N] [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]. Now [FunLike F ?M ?N] is synthesized first, supplies values for ?M and ?N and then the Mul M and Mul N instances can be found, before trying MulHomClass F M N which fails. Since the Mul hierarchy is very big, this can be slow to fail, especially when there is no such Mul instance.

A long-term but harder to achieve solution would be to specify the order in which instance goals get solved. For example, we'd like to change the arguments to map_mul to look like [FunLike F M N] [Mul M] [Mul N] [highPriority <| MulHomClass F M N] because MulHomClass fails or succeeds much faster than the others.

As a consequence, the simpNF linter is much slower since by design it tries and fails to apply many map_ lemmas. The same issue occurs a few times in existing calls to simp [map_mul], where map_mul is tried "too soon" and fails. Thanks to the speedup of leanprover/lean4#2478 the impact is very limited, only in files that already were close to the timeout.

simp not firing sometimes

This affects map_smulβ‚›β‚— and related definitions. For simp lemmas Lean apparently uses a slightly different mechanism to find instances, so that rw can find every argument to map_smulβ‚›β‚— successfully but simp can't: leanprover/lean4#3701.

Missing instances due to unification failing

Especially in the category theory library, we might sometimes have a type A which is also accessible as a synonym (Bundled A hA).1. Instance synthesis doesn't always work if we have f : A β†’* B but x * y : (Bundled A hA).1 or vice versa. This seems to be mostly fixed by keeping A B as outParams in MulHomClass F A B. (Presumably because Lean will do a definitional check A =?= (Bundled A hA).1 instead of using the syntax in the discrimination tree.)

Workaround for issues

The timeouts can be worked around for now by specifying which map_mul we mean, either as map_mul f for some explicit f, or as e.g. MonoidHomClass.map_mul.

map_smulβ‚›β‚— not firing as simp lemma can be worked around by going back to the pre-FunLike situation and making LinearMap.map_smulβ‚›β‚— a simp lemma instead of the generic map_smulβ‚›β‚—. Writing simp [map_smulβ‚›β‚— _] also works.

Co-authored-by: Matthew Ballard <matt@mrb.email> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Scott Morrison <scott@tqft.net> Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>

Diff
@@ -332,8 +332,9 @@ theorem invOf_exp_of_mem_ball [CharZero 𝕂] {x : 𝔸}
 #align inv_of_exp_of_mem_ball NormedSpace.invOf_exp_of_mem_ball
 
 /-- Any continuous ring homomorphism commutes with `exp`. -/
-theorem map_exp_of_mem_ball {F} [RingHomClass F 𝔸 𝔹] (f : F) (hf : Continuous f) (x : 𝔸)
-    (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : f (exp 𝕂 x) = exp 𝕂 (f x) := by
+theorem map_exp_of_mem_ball {F} [FunLike F 𝔸 𝔹] [RingHomClass F 𝔸 𝔹] (f : F) (hf : Continuous f)
+    (x : 𝔸) (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
+    f (exp 𝕂 x) = exp 𝕂 (f x) := by
   rw [exp_eq_tsum, exp_eq_tsum]
   refine' ((expSeries_summable_of_mem_ball' _ hx).hasSum.map f hf).tsum_eq.symm.trans _
   dsimp only [Function.comp_def]
@@ -540,7 +541,7 @@ theorem exp_nsmul (n : β„•) (x : 𝔸) : exp 𝕂 (n β€’ x) = exp 𝕂 x ^ n :=
 variable (𝕂)
 
 /-- Any continuous ring homomorphism commutes with `exp`. -/
-theorem map_exp {F} [RingHomClass F 𝔸 𝔹] (f : F) (hf : Continuous f) (x : 𝔸) :
+theorem map_exp {F} [FunLike F 𝔸 𝔹] [RingHomClass F 𝔸 𝔹] (f : F) (hf : Continuous f) (x : 𝔸) :
     f (exp 𝕂 x) = exp 𝕂 (f x) :=
   map_exp_of_mem_ball f hf x <| (expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _
 #align map_exp NormedSpace.map_exp
chore(NormedSpace/Exponential): Fintype β†’ Finite (#10260)
Diff
@@ -569,20 +569,20 @@ theorem _root_.Prod.snd_exp [CompleteSpace 𝔹] (x : 𝔸 Γ— 𝔹) : (exp 𝕂
 #align prod.snd_exp Prod.snd_exp
 
 @[simp]
-theorem _root_.Pi.exp_apply {ΞΉ : Type*} {𝔸 : ΞΉ β†’ Type*} [Fintype ΞΉ] [βˆ€ i, NormedRing (𝔸 i)]
+theorem _root_.Pi.exp_apply {ΞΉ : Type*} {𝔸 : ΞΉ β†’ Type*} [Finite ΞΉ] [βˆ€ i, NormedRing (𝔸 i)]
     [βˆ€ i, NormedAlgebra 𝕂 (𝔸 i)] [βˆ€ i, CompleteSpace (𝔸 i)] (x : βˆ€ i, 𝔸 i) (i : ΞΉ) :
     exp 𝕂 x i = exp 𝕂 (x i) :=
+  let ⟨_⟩ := nonempty_fintype ι
   map_exp _ (Pi.evalRingHom 𝔸 i) (continuous_apply _) x
-  -- porting note: Lean can now handle Ξ -types in type class inference!
 #align pi.exp_apply Pi.exp_apply
 
-theorem _root_.Pi.exp_def {ΞΉ : Type*} {𝔸 : ΞΉ β†’ Type*} [Fintype ΞΉ] [βˆ€ i, NormedRing (𝔸 i)]
+theorem _root_.Pi.exp_def {ΞΉ : Type*} {𝔸 : ΞΉ β†’ Type*} [Finite ΞΉ] [βˆ€ i, NormedRing (𝔸 i)]
     [βˆ€ i, NormedAlgebra 𝕂 (𝔸 i)] [βˆ€ i, CompleteSpace (𝔸 i)] (x : βˆ€ i, 𝔸 i) :
     exp 𝕂 x = fun i => exp 𝕂 (x i) :=
   funext <| Pi.exp_apply 𝕂 x
 #align pi.exp_def Pi.exp_def
 
-theorem _root_.Function.update_exp {ΞΉ : Type*} {𝔸 : ΞΉ β†’ Type*} [Fintype ΞΉ] [DecidableEq ΞΉ]
+theorem _root_.Function.update_exp {ΞΉ : Type*} {𝔸 : ΞΉ β†’ Type*} [Finite ΞΉ] [DecidableEq ΞΉ]
     [βˆ€ i, NormedRing (𝔸 i)] [βˆ€ i, NormedAlgebra 𝕂 (𝔸 i)] [βˆ€ i, CompleteSpace (𝔸 i)] (x : βˆ€ i, 𝔸 i)
     (j : ΞΉ) (xj : 𝔸 j) :
     Function.update (exp 𝕂 x) j (exp 𝕂 xj) = exp 𝕂 (Function.update x j xj) := by
feat: The support of f ^ n (#9617)

This involves moving lemmas from Algebra.GroupPower.Ring to Algebra.GroupWithZero.Basic and changing some 0 < n assumptions to n β‰  0.

From LeanAPAP

Diff
@@ -137,7 +137,7 @@ theorem expSeries_apply_zero (n : β„•) :
   rw [expSeries_apply_eq]
   cases' n with n
   Β· rw [pow_zero, Nat.factorial_zero, Nat.cast_one, inv_one, one_smul, Pi.single_eq_same]
-  Β· rw [zero_pow (Nat.succ_pos _), smul_zero, Pi.single_eq_of_ne n.succ_ne_zero]
+  Β· rw [zero_pow (Nat.succ_ne_zero _), smul_zero, Pi.single_eq_of_ne n.succ_ne_zero]
 #align exp_series_apply_zero NormedSpace.expSeries_apply_zero
 
 @[simp]
chore: exp -> NormedSpace.exp (#8436)

Per discussion at zulip

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -61,9 +61,32 @@ We prove most result for an arbitrary field `𝕂`, and then specialize to `𝕂
 
 - `exp_eq_exp` : if `𝔸` is a normed algebra over two fields `𝕂` and `𝕂'`, then `exp 𝕂 = exp 𝕂' 𝔸`
 
+### Notes
+
+We put nearly all the statements in this file in the `NormedSpace` namespace,
+to avoid collisions with the `Real` or `Complex` namespaces.
+
+As of 2023-11-16 due to bad instances in Mathlib
+```
+import Mathlib
+
+open Real
+
+#time example (x : ℝ) : 0 < exp x      := exp_pos _ -- 250ms
+#time example (x : ℝ) : 0 < Real.exp x := exp_pos _ -- 2ms
+```
+This is because `exp x` tries the `exp` function defined here,
+and generates a slow coercion search from `Real` to `Type`, to fit the first argument here.
+We will resolve this slow coercion separately,
+but we want to move `exp` out of the root namespace in any case to avoid this ambiguity.
+
+In the long term is may be possible to replace `Real.exp` and `Complex.exp` with this one.
+
 -/
 
 
+namespace NormedSpace
+
 open Filter IsROrC ContinuousMultilinearMap NormedField Asymptotics
 
 open scoped Nat Topology BigOperators ENNReal
@@ -76,7 +99,7 @@ variable (𝕂 𝔸 : Type*) [Field 𝕂] [Ring 𝔸] [Algebra 𝕂 𝔸] [Topol
 `(xα΅’) : 𝔸ⁿ ↦ (1/n! : 𝕂) β€’ ∏ xα΅’`. Its sum is the exponential map `exp 𝕂 : 𝔸 β†’ 𝔸`. -/
 def expSeries : FormalMultilinearSeries 𝕂 𝔸 𝔸 := fun n =>
   (n !⁻¹ : 𝕂) β€’ ContinuousMultilinearMap.mkPiAlgebraFin 𝕂 n 𝔸
-#align exp_series expSeries
+#align exp_series NormedSpace.expSeries
 
 variable {𝔸}
 
@@ -88,26 +111,26 @@ Note that when `𝔸 = Matrix n n 𝕂`, this is the **Matrix Exponential**; see
 case. -/
 noncomputable def exp (x : 𝔸) : 𝔸 :=
   (expSeries 𝕂 𝔸).sum x
-#align exp exp
+#align exp NormedSpace.exp
 
 variable {𝕂}
 
 theorem expSeries_apply_eq (x : 𝔸) (n : β„•) : (expSeries 𝕂 𝔸 n fun _ => x) = (n !⁻¹ : 𝕂) β€’ x ^ n :=
   by simp [expSeries]
-#align exp_series_apply_eq expSeries_apply_eq
+#align exp_series_apply_eq NormedSpace.expSeries_apply_eq
 
 theorem expSeries_apply_eq' (x : 𝔸) :
     (fun n => expSeries 𝕂 𝔸 n fun _ => x) = fun n => (n !⁻¹ : 𝕂) β€’ x ^ n :=
   funext (expSeries_apply_eq x)
-#align exp_series_apply_eq' expSeries_apply_eq'
+#align exp_series_apply_eq' NormedSpace.expSeries_apply_eq'
 
 theorem expSeries_sum_eq (x : 𝔸) : (expSeries 𝕂 𝔸).sum x = βˆ‘' n : β„•, (n !⁻¹ : 𝕂) β€’ x ^ n :=
   tsum_congr fun n => expSeries_apply_eq x n
-#align exp_series_sum_eq expSeries_sum_eq
+#align exp_series_sum_eq NormedSpace.expSeries_sum_eq
 
 theorem exp_eq_tsum : exp 𝕂 = fun x : 𝔸 => βˆ‘' n : β„•, (n !⁻¹ : 𝕂) β€’ x ^ n :=
   funext expSeries_sum_eq
-#align exp_eq_tsum exp_eq_tsum
+#align exp_eq_tsum NormedSpace.exp_eq_tsum
 
 theorem expSeries_apply_zero (n : β„•) :
     (expSeries 𝕂 𝔸 n fun _ => (0 : 𝔸)) = Pi.single (f := fun _ => 𝔸) 0 1 n := by
@@ -115,45 +138,46 @@ theorem expSeries_apply_zero (n : β„•) :
   cases' n with n
   Β· rw [pow_zero, Nat.factorial_zero, Nat.cast_one, inv_one, one_smul, Pi.single_eq_same]
   Β· rw [zero_pow (Nat.succ_pos _), smul_zero, Pi.single_eq_of_ne n.succ_ne_zero]
-#align exp_series_apply_zero expSeries_apply_zero
+#align exp_series_apply_zero NormedSpace.expSeries_apply_zero
 
 @[simp]
 theorem exp_zero : exp 𝕂 (0 : 𝔸) = 1 := by
   simp_rw [exp_eq_tsum, ← expSeries_apply_eq, expSeries_apply_zero, tsum_pi_single]
-#align exp_zero exp_zero
+#align exp_zero NormedSpace.exp_zero
 
 @[simp]
 theorem exp_op [T2Space 𝔸] (x : 𝔸) : exp 𝕂 (MulOpposite.op x) = MulOpposite.op (exp 𝕂 x) := by
   simp_rw [exp, expSeries_sum_eq, ← MulOpposite.op_pow, ← MulOpposite.op_smul, tsum_op]
-#align exp_op exp_op
+#align exp_op NormedSpace.exp_op
 
 @[simp]
 theorem exp_unop [T2Space 𝔸] (x : 𝔸ᡐᡒᡖ) : exp 𝕂 (MulOpposite.unop x) = MulOpposite.unop (exp 𝕂 x) :=
   by simp_rw [exp, expSeries_sum_eq, ← MulOpposite.unop_pow, ← MulOpposite.unop_smul, tsum_unop]
-#align exp_unop exp_unop
+#align exp_unop NormedSpace.exp_unop
 
 theorem star_exp [T2Space 𝔸] [StarRing 𝔸] [ContinuousStar 𝔸] (x : 𝔸) :
     star (exp 𝕂 x) = exp 𝕂 (star x) := by
   simp_rw [exp_eq_tsum, ← star_pow, ← star_inv_nat_cast_smul, ← tsum_star]
-#align star_exp star_exp
+#align star_exp NormedSpace.star_exp
 
 variable (𝕂)
 
-theorem IsSelfAdjoint.exp [T2Space 𝔸] [StarRing 𝔸] [ContinuousStar 𝔸] {x : 𝔸}
+theorem _root_.IsSelfAdjoint.exp [T2Space 𝔸] [StarRing 𝔸] [ContinuousStar 𝔸] {x : 𝔸}
     (h : IsSelfAdjoint x) : IsSelfAdjoint (exp 𝕂 x) :=
   (star_exp x).trans <| h.symm β–Έ rfl
 #align is_self_adjoint.exp IsSelfAdjoint.exp
 
-theorem Commute.exp_right [T2Space 𝔸] {x y : 𝔸} (h : Commute x y) : Commute x (exp 𝕂 y) := by
+theorem _root_.Commute.exp_right [T2Space 𝔸] {x y : 𝔸} (h : Commute x y) :
+    Commute x (exp 𝕂 y) := by
   rw [exp_eq_tsum]
   exact Commute.tsum_right x fun n => (h.pow_right n).smul_right _
 #align commute.exp_right Commute.exp_right
 
-theorem Commute.exp_left [T2Space 𝔸] {x y : 𝔸} (h : Commute x y) : Commute (exp 𝕂 x) y :=
+theorem _root_.Commute.exp_left [T2Space 𝔸] {x y : 𝔸} (h : Commute x y) : Commute (exp 𝕂 x) y :=
   (h.symm.exp_right 𝕂).symm
 #align commute.exp_left Commute.exp_left
 
-theorem Commute.exp [T2Space 𝔸] {x y : 𝔸} (h : Commute x y) : Commute (exp 𝕂 x) (exp 𝕂 y) :=
+theorem _root_.Commute.exp [T2Space 𝔸] {x y : 𝔸} (h : Commute x y) : Commute (exp 𝕂 x) (exp 𝕂 y) :=
   (h.exp_left _).exp_right _
 #align commute.exp Commute.exp
 
@@ -167,20 +191,20 @@ variable {𝕂 𝔸 : Type*} [Field 𝕂] [DivisionRing 𝔸] [Algebra 𝕂 𝔸
 theorem expSeries_apply_eq_div (x : 𝔸) (n : β„•) : (expSeries 𝕂 𝔸 n fun _ => x) = x ^ n / n ! := by
   rw [div_eq_mul_inv, ← (Nat.cast_commute n ! (x ^ n)).inv_leftβ‚€.eq, ← smul_eq_mul,
     expSeries_apply_eq, inv_nat_cast_smul_eq 𝕂 𝔸]
-#align exp_series_apply_eq_div expSeries_apply_eq_div
+#align exp_series_apply_eq_div NormedSpace.expSeries_apply_eq_div
 
 theorem expSeries_apply_eq_div' (x : 𝔸) :
     (fun n => expSeries 𝕂 𝔸 n fun _ => x) = fun n => x ^ n / n ! :=
   funext (expSeries_apply_eq_div x)
-#align exp_series_apply_eq_div' expSeries_apply_eq_div'
+#align exp_series_apply_eq_div' NormedSpace.expSeries_apply_eq_div'
 
 theorem expSeries_sum_eq_div (x : 𝔸) : (expSeries 𝕂 𝔸).sum x = βˆ‘' n : β„•, x ^ n / n ! :=
   tsum_congr (expSeries_apply_eq_div x)
-#align exp_series_sum_eq_div expSeries_sum_eq_div
+#align exp_series_sum_eq_div NormedSpace.expSeries_sum_eq_div
 
 theorem exp_eq_tsum_div : exp 𝕂 = fun x : 𝔸 => βˆ‘' n : β„•, x ^ n / n ! :=
   funext expSeries_sum_eq_div
-#align exp_eq_tsum_div exp_eq_tsum_div
+#align exp_eq_tsum_div NormedSpace.exp_eq_tsum_div
 
 end TopologicalDivisionAlgebra
 
@@ -196,7 +220,7 @@ theorem norm_expSeries_summable_of_mem_ball (x : 𝔸)
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     Summable fun n => β€–expSeries 𝕂 𝔸 n fun _ => xβ€– :=
   (expSeries 𝕂 𝔸).summable_norm_apply hx
-#align norm_exp_series_summable_of_mem_ball norm_expSeries_summable_of_mem_ball
+#align norm_exp_series_summable_of_mem_ball NormedSpace.norm_expSeries_summable_of_mem_ball
 
 theorem norm_expSeries_summable_of_mem_ball' (x : 𝔸)
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
@@ -204,7 +228,7 @@ theorem norm_expSeries_summable_of_mem_ball' (x : 𝔸)
   change Summable (norm ∘ _)
   rw [← expSeries_apply_eq']
   exact norm_expSeries_summable_of_mem_ball x hx
-#align norm_exp_series_summable_of_mem_ball' norm_expSeries_summable_of_mem_ball'
+#align norm_exp_series_summable_of_mem_ball' NormedSpace.norm_expSeries_summable_of_mem_ball'
 
 section CompleteAlgebra
 
@@ -214,40 +238,40 @@ theorem expSeries_summable_of_mem_ball (x : 𝔸)
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     Summable fun n => expSeries 𝕂 𝔸 n fun _ => x :=
   (norm_expSeries_summable_of_mem_ball x hx).of_norm
-#align exp_series_summable_of_mem_ball expSeries_summable_of_mem_ball
+#align exp_series_summable_of_mem_ball NormedSpace.expSeries_summable_of_mem_ball
 
 theorem expSeries_summable_of_mem_ball' (x : 𝔸)
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     Summable fun n => (n !⁻¹ : 𝕂) β€’ x ^ n :=
   (norm_expSeries_summable_of_mem_ball' x hx).of_norm
-#align exp_series_summable_of_mem_ball' expSeries_summable_of_mem_ball'
+#align exp_series_summable_of_mem_ball' NormedSpace.expSeries_summable_of_mem_ball'
 
 theorem expSeries_hasSum_exp_of_mem_ball (x : 𝔸)
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     HasSum (fun n => expSeries 𝕂 𝔸 n fun _ => x) (exp 𝕂 x) :=
   FormalMultilinearSeries.hasSum (expSeries 𝕂 𝔸) hx
-#align exp_series_has_sum_exp_of_mem_ball expSeries_hasSum_exp_of_mem_ball
+#align exp_series_has_sum_exp_of_mem_ball NormedSpace.expSeries_hasSum_exp_of_mem_ball
 
 theorem expSeries_hasSum_exp_of_mem_ball' (x : 𝔸)
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     HasSum (fun n => (n !⁻¹ : 𝕂) β€’ x ^ n) (exp 𝕂 x) := by
   rw [← expSeries_apply_eq']
   exact expSeries_hasSum_exp_of_mem_ball x hx
-#align exp_series_has_sum_exp_of_mem_ball' expSeries_hasSum_exp_of_mem_ball'
+#align exp_series_has_sum_exp_of_mem_ball' NormedSpace.expSeries_hasSum_exp_of_mem_ball'
 
 theorem hasFPowerSeriesOnBall_exp_of_radius_pos (h : 0 < (expSeries 𝕂 𝔸).radius) :
     HasFPowerSeriesOnBall (exp 𝕂) (expSeries 𝕂 𝔸) 0 (expSeries 𝕂 𝔸).radius :=
   (expSeries 𝕂 𝔸).hasFPowerSeriesOnBall h
-#align has_fpower_series_on_ball_exp_of_radius_pos hasFPowerSeriesOnBall_exp_of_radius_pos
+#align has_fpower_series_on_ball_exp_of_radius_pos NormedSpace.hasFPowerSeriesOnBall_exp_of_radius_pos
 
 theorem hasFPowerSeriesAt_exp_zero_of_radius_pos (h : 0 < (expSeries 𝕂 𝔸).radius) :
     HasFPowerSeriesAt (exp 𝕂) (expSeries 𝕂 𝔸) 0 :=
   (hasFPowerSeriesOnBall_exp_of_radius_pos h).hasFPowerSeriesAt
-#align has_fpower_series_at_exp_zero_of_radius_pos hasFPowerSeriesAt_exp_zero_of_radius_pos
+#align has_fpower_series_at_exp_zero_of_radius_pos NormedSpace.hasFPowerSeriesAt_exp_zero_of_radius_pos
 
 theorem continuousOn_exp : ContinuousOn (exp 𝕂 : 𝔸 β†’ 𝔸) (EMetric.ball 0 (expSeries 𝕂 𝔸).radius) :=
   FormalMultilinearSeries.continuousOn
-#align continuous_on_exp continuousOn_exp
+#align continuous_on_exp NormedSpace.continuousOn_exp
 
 theorem analyticAt_exp_of_mem_ball (x : 𝔸) (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     AnalyticAt 𝕂 (exp 𝕂) x := by
@@ -255,7 +279,7 @@ theorem analyticAt_exp_of_mem_ball (x : 𝔸) (hx : x ∈ EMetric.ball (0 : 𝔸
   Β· rw [h] at hx; exact (ENNReal.not_lt_zero hx).elim
   Β· have h := pos_iff_ne_zero.mpr h
     exact (hasFPowerSeriesOnBall_exp_of_radius_pos h).analyticAt_of_mem hx
-#align analytic_at_exp_of_mem_ball analyticAt_exp_of_mem_ball
+#align analytic_at_exp_of_mem_ball NormedSpace.analyticAt_exp_of_mem_ball
 
 /-- In a Banach-algebra `𝔸` over a normed field `𝕂` of characteristic zero, if `x` and `y` are
 in the disk of convergence and commute, then `exp 𝕂 (x + y) = (exp 𝕂 x) * (exp 𝕂 y)`. -/
@@ -276,7 +300,7 @@ theorem exp_add_of_commute_of_mem_ball [CharZero 𝕂] {x y : 𝔸} (hxy : Commu
   congr 1
   have : (n ! : 𝕂) β‰  0 := Nat.cast_ne_zero.mpr n.factorial_ne_zero
   field_simp [this]
-#align exp_add_of_commute_of_mem_ball exp_add_of_commute_of_mem_ball
+#align exp_add_of_commute_of_mem_ball NormedSpace.exp_add_of_commute_of_mem_ball
 
 /-- `exp 𝕂 x` has explicit two-sided inverse `exp 𝕂 (-x)`. -/
 noncomputable def invertibleExpOfMemBall [CharZero 𝕂] {x : 𝔸}
@@ -294,18 +318,18 @@ noncomputable def invertibleExpOfMemBall [CharZero 𝕂] {x : 𝔸}
       exact hx
     rw [← exp_add_of_commute_of_mem_ball (Commute.neg_right <| Commute.refl x) hx hnx, add_neg_self,
       exp_zero]
-#align invertible_exp_of_mem_ball invertibleExpOfMemBall
+#align invertible_exp_of_mem_ball NormedSpace.invertibleExpOfMemBall
 
 theorem isUnit_exp_of_mem_ball [CharZero 𝕂] {x : 𝔸}
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : IsUnit (exp 𝕂 x) :=
   @isUnit_of_invertible _ _ _ (invertibleExpOfMemBall hx)
-#align is_unit_exp_of_mem_ball isUnit_exp_of_mem_ball
+#align is_unit_exp_of_mem_ball NormedSpace.isUnit_exp_of_mem_ball
 
 theorem invOf_exp_of_mem_ball [CharZero 𝕂] {x : 𝔸}
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) [Invertible (exp 𝕂 x)] :
     β…Ÿ (exp 𝕂 x) = exp 𝕂 (-x) := by
   letI := invertibleExpOfMemBall hx; convert (rfl : β…Ÿ (exp 𝕂 x) = _)
-#align inv_of_exp_of_mem_ball invOf_exp_of_mem_ball
+#align inv_of_exp_of_mem_ball NormedSpace.invOf_exp_of_mem_ball
 
 /-- Any continuous ring homomorphism commutes with `exp`. -/
 theorem map_exp_of_mem_ball {F} [RingHomClass F 𝔸 𝔹] (f : F) (hf : Continuous f) (x : 𝔸)
@@ -314,7 +338,7 @@ theorem map_exp_of_mem_ball {F} [RingHomClass F 𝔸 𝔹] (f : F) (hf : Continu
   refine' ((expSeries_summable_of_mem_ball' _ hx).hasSum.map f hf).tsum_eq.symm.trans _
   dsimp only [Function.comp_def]
   simp_rw [map_inv_nat_cast_smul f 𝕂 𝕂, map_pow]
-#align map_exp_of_mem_ball map_exp_of_mem_ball
+#align map_exp_of_mem_ball NormedSpace.map_exp_of_mem_ball
 
 end CompleteAlgebra
 
@@ -322,7 +346,7 @@ theorem algebraMap_exp_comm_of_mem_ball [CompleteSpace 𝕂] (x : 𝕂)
     (hx : x ∈ EMetric.ball (0 : 𝕂) (expSeries 𝕂 𝕂).radius) :
     algebraMap 𝕂 𝔸 (exp 𝕂 x) = exp 𝕂 (algebraMap 𝕂 𝔸 x) :=
   map_exp_of_mem_ball _ (continuous_algebraMap 𝕂 𝔸) _ hx
-#align algebra_map_exp_comm_of_mem_ball algebraMap_exp_comm_of_mem_ball
+#align algebra_map_exp_comm_of_mem_ball NormedSpace.algebraMap_exp_comm_of_mem_ball
 
 end AnyFieldAnyAlgebra
 
@@ -338,19 +362,19 @@ theorem norm_expSeries_div_summable_of_mem_ball (x : 𝔸)
   change Summable (norm ∘ _)
   rw [← expSeries_apply_eq_div' (𝕂 := 𝕂) x]
   exact norm_expSeries_summable_of_mem_ball x hx
-#align norm_exp_series_div_summable_of_mem_ball norm_expSeries_div_summable_of_mem_ball
+#align norm_exp_series_div_summable_of_mem_ball NormedSpace.norm_expSeries_div_summable_of_mem_ball
 
 theorem expSeries_div_summable_of_mem_ball [CompleteSpace 𝔸] (x : 𝔸)
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : Summable fun n => x ^ n / n ! :=
   (norm_expSeries_div_summable_of_mem_ball 𝕂 x hx).of_norm
-#align exp_series_div_summable_of_mem_ball expSeries_div_summable_of_mem_ball
+#align exp_series_div_summable_of_mem_ball NormedSpace.expSeries_div_summable_of_mem_ball
 
 theorem expSeries_div_hasSum_exp_of_mem_ball [CompleteSpace 𝔸] (x : 𝔸)
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     HasSum (fun n => x ^ n / n !) (exp 𝕂 x) := by
   rw [← expSeries_apply_eq_div' (𝕂 := 𝕂) x]
   exact expSeries_hasSum_exp_of_mem_ball x hx
-#align exp_series_div_has_sum_exp_of_mem_ball expSeries_div_hasSum_exp_of_mem_ball
+#align exp_series_div_has_sum_exp_of_mem_ball NormedSpace.expSeries_div_hasSum_exp_of_mem_ball
 
 variable {𝕂}
 
@@ -358,7 +382,7 @@ theorem exp_neg_of_mem_ball [CharZero 𝕂] [CompleteSpace 𝔸] {x : 𝔸}
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : exp 𝕂 (-x) = (exp 𝕂 x)⁻¹ :=
   letI := invertibleExpOfMemBall hx
   invOf_eq_inv (exp 𝕂 x)
-#align exp_neg_of_mem_ball exp_neg_of_mem_ball
+#align exp_neg_of_mem_ball NormedSpace.exp_neg_of_mem_ball
 
 end AnyFieldDivisionAlgebra
 
@@ -373,7 +397,7 @@ theorem exp_add_of_mem_ball [CharZero 𝕂] {x y : 𝔸}
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius)
     (hy : y ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : exp 𝕂 (x + y) = exp 𝕂 x * exp 𝕂 y :=
   exp_add_of_commute_of_mem_ball (Commute.all x y) hx hy
-#align exp_add_of_mem_ball exp_add_of_mem_ball
+#align exp_add_of_mem_ball NormedSpace.exp_add_of_mem_ball
 
 end AnyFieldCommAlgebra
 
@@ -398,22 +422,22 @@ theorem expSeries_radius_eq_top : (expSeries 𝕂 𝔸).radius = ∞ := by
   have : β€–ContinuousMultilinearMap.mkPiAlgebraFin 𝕂 n 𝔸‖ ≀ 1 :=
     norm_mkPiAlgebraFin_le_of_pos (Ei := fun _ => 𝔸) (Nat.pos_of_ne_zero hn)
   exact mul_le_of_le_one_right (div_nonneg (pow_nonneg r.coe_nonneg n) n !.cast_nonneg) this
-#align exp_series_radius_eq_top expSeries_radius_eq_top
+#align exp_series_radius_eq_top NormedSpace.expSeries_radius_eq_top
 
 theorem expSeries_radius_pos : 0 < (expSeries 𝕂 𝔸).radius := by
   rw [expSeries_radius_eq_top]
   exact WithTop.zero_lt_top
-#align exp_series_radius_pos expSeries_radius_pos
+#align exp_series_radius_pos NormedSpace.expSeries_radius_pos
 
 variable {𝕂 𝔸 𝔹}
 
 theorem norm_expSeries_summable (x : 𝔸) : Summable fun n => β€–expSeries 𝕂 𝔸 n fun _ => xβ€– :=
   norm_expSeries_summable_of_mem_ball x ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
-#align norm_exp_series_summable norm_expSeries_summable
+#align norm_exp_series_summable NormedSpace.norm_expSeries_summable
 
 theorem norm_expSeries_summable' (x : 𝔸) : Summable fun n => β€–(n !⁻¹ : 𝕂) β€’ x ^ nβ€– :=
   norm_expSeries_summable_of_mem_ball' x ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
-#align norm_exp_series_summable' norm_expSeries_summable'
+#align norm_exp_series_summable' NormedSpace.norm_expSeries_summable'
 
 section CompleteAlgebra
 
@@ -421,45 +445,45 @@ variable [CompleteSpace 𝔸]
 
 theorem expSeries_summable (x : 𝔸) : Summable fun n => expSeries 𝕂 𝔸 n fun _ => x :=
   (norm_expSeries_summable x).of_norm
-#align exp_series_summable expSeries_summable
+#align exp_series_summable NormedSpace.expSeries_summable
 
 theorem expSeries_summable' (x : 𝔸) : Summable fun n => (n !⁻¹ : 𝕂) β€’ x ^ n :=
   (norm_expSeries_summable' x).of_norm
-#align exp_series_summable' expSeries_summable'
+#align exp_series_summable' NormedSpace.expSeries_summable'
 
 theorem expSeries_hasSum_exp (x : 𝔸) : HasSum (fun n => expSeries 𝕂 𝔸 n fun _ => x) (exp 𝕂 x) :=
   expSeries_hasSum_exp_of_mem_ball x ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
-#align exp_series_has_sum_exp expSeries_hasSum_exp
+#align exp_series_has_sum_exp NormedSpace.expSeries_hasSum_exp
 
 theorem exp_series_hasSum_exp' (x : 𝔸) : HasSum (fun n => (n !⁻¹ : 𝕂) β€’ x ^ n) (exp 𝕂 x) :=
   expSeries_hasSum_exp_of_mem_ball' x ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
-#align exp_series_has_sum_exp' exp_series_hasSum_exp'
+#align exp_series_has_sum_exp' NormedSpace.exp_series_hasSum_exp'
 
 theorem exp_hasFPowerSeriesOnBall : HasFPowerSeriesOnBall (exp 𝕂) (expSeries 𝕂 𝔸) 0 ∞ :=
   expSeries_radius_eq_top 𝕂 𝔸 β–Έ hasFPowerSeriesOnBall_exp_of_radius_pos (expSeries_radius_pos _ _)
-#align exp_has_fpower_series_on_ball exp_hasFPowerSeriesOnBall
+#align exp_has_fpower_series_on_ball NormedSpace.exp_hasFPowerSeriesOnBall
 
 theorem exp_hasFPowerSeriesAt_zero : HasFPowerSeriesAt (exp 𝕂) (expSeries 𝕂 𝔸) 0 :=
   exp_hasFPowerSeriesOnBall.hasFPowerSeriesAt
-#align exp_has_fpower_series_at_zero exp_hasFPowerSeriesAt_zero
+#align exp_has_fpower_series_at_zero NormedSpace.exp_hasFPowerSeriesAt_zero
 
 @[continuity]
 theorem exp_continuous : Continuous (exp 𝕂 : 𝔸 β†’ 𝔸) := by
   rw [continuous_iff_continuousOn_univ, ← Metric.eball_top_eq_univ (0 : 𝔸), ←
     expSeries_radius_eq_top 𝕂 𝔸]
   exact continuousOn_exp
-#align exp_continuous exp_continuous
+#align exp_continuous NormedSpace.exp_continuous
 
 theorem exp_analytic (x : 𝔸) : AnalyticAt 𝕂 (exp 𝕂) x :=
   analyticAt_exp_of_mem_ball x ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
-#align exp_analytic exp_analytic
+#align exp_analytic NormedSpace.exp_analytic
 
 /-- In a Banach-algebra `𝔸` over `𝕂 = ℝ` or `𝕂 = β„‚`, if `x` and `y` commute, then
 `exp 𝕂 (x+y) = (exp 𝕂 x) * (exp 𝕂 y)`. -/
 theorem exp_add_of_commute {x y : 𝔸} (hxy : Commute x y) : exp 𝕂 (x + y) = exp 𝕂 x * exp 𝕂 y :=
   exp_add_of_commute_of_mem_ball hxy ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
     ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
-#align exp_add_of_commute exp_add_of_commute
+#align exp_add_of_commute NormedSpace.exp_add_of_commute
 
 section
 
@@ -468,17 +492,17 @@ variable (𝕂)
 /-- `exp 𝕂 x` has explicit two-sided inverse `exp 𝕂 (-x)`. -/
 noncomputable def invertibleExp (x : 𝔸) : Invertible (exp 𝕂 x) :=
   invertibleExpOfMemBall <| (expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _
-#align invertible_exp invertibleExp
+#align invertible_exp NormedSpace.invertibleExp
 
 theorem isUnit_exp (x : 𝔸) : IsUnit (exp 𝕂 x) :=
   isUnit_exp_of_mem_ball <| (expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _
-#align is_unit_exp isUnit_exp
+#align is_unit_exp NormedSpace.isUnit_exp
 
 theorem invOf_exp (x : 𝔸) [Invertible (exp 𝕂 x)] : β…Ÿ (exp 𝕂 x) = exp 𝕂 (-x) :=
   invOf_exp_of_mem_ball <| (expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _
-#align inv_of_exp invOf_exp
+#align inv_of_exp NormedSpace.invOf_exp
 
-theorem Ring.inverse_exp (x : 𝔸) : Ring.inverse (exp 𝕂 x) = exp 𝕂 (-x) :=
+theorem _root_.Ring.inverse_exp (x : 𝔸) : Ring.inverse (exp 𝕂 x) = exp 𝕂 (-x) :=
   letI := invertibleExp 𝕂 x
   Ring.inverse_invertible _
 #align ring.inverse_exp Ring.inverse_exp
@@ -488,7 +512,7 @@ theorem exp_mem_unitary_of_mem_skewAdjoint [StarRing 𝔸] [ContinuousStar 𝔸]
   rw [unitary.mem_iff, star_exp, skewAdjoint.mem_iff.mp h, ←
     exp_add_of_commute (Commute.refl x).neg_left, ← exp_add_of_commute (Commute.refl x).neg_right,
     add_left_neg, add_right_neg, exp_zero, and_self_iff]
-#align exp_mem_unitary_of_mem_skew_adjoint exp_mem_unitary_of_mem_skewAdjoint
+#align exp_mem_unitary_of_mem_skew_adjoint NormedSpace.exp_mem_unitary_of_mem_skewAdjoint
 
 end
 
@@ -505,13 +529,13 @@ theorem exp_sum_of_commute {ΞΉ} (s : Finset ΞΉ) (f : ΞΉ β†’ 𝔸)
       ih (h.mono <| Finset.subset_insert _ _)]
     refine' Commute.sum_right _ _ _ fun i hi => _
     exact h.of_refl (Finset.mem_insert_self _ _) (Finset.mem_insert_of_mem hi)
-#align exp_sum_of_commute exp_sum_of_commute
+#align exp_sum_of_commute NormedSpace.exp_sum_of_commute
 
 theorem exp_nsmul (n : β„•) (x : 𝔸) : exp 𝕂 (n β€’ x) = exp 𝕂 x ^ n := by
   induction' n with n ih
   Β· rw [Nat.zero_eq, zero_smul, pow_zero, exp_zero]
   Β· rw [succ_nsmul, pow_succ, exp_add_of_commute ((Commute.refl x).smul_right n), ih]
-#align exp_nsmul exp_nsmul
+#align exp_nsmul NormedSpace.exp_nsmul
 
 variable (𝕂)
 
@@ -519,46 +543,46 @@ variable (𝕂)
 theorem map_exp {F} [RingHomClass F 𝔸 𝔹] (f : F) (hf : Continuous f) (x : 𝔸) :
     f (exp 𝕂 x) = exp 𝕂 (f x) :=
   map_exp_of_mem_ball f hf x <| (expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _
-#align map_exp map_exp
+#align map_exp NormedSpace.map_exp
 
 theorem exp_smul {G} [Monoid G] [MulSemiringAction G 𝔸] [ContinuousConstSMul G 𝔸] (g : G) (x : 𝔸) :
     exp 𝕂 (g β€’ x) = g β€’ exp 𝕂 x :=
   (map_exp 𝕂 (MulSemiringAction.toRingHom G 𝔸 g) (continuous_const_smul g) x).symm
-#align exp_smul exp_smul
+#align exp_smul NormedSpace.exp_smul
 
 theorem exp_units_conj (y : 𝔸ˣ) (x : 𝔸) : exp 𝕂 (y * x * ↑y⁻¹ : 𝔸) = y * exp 𝕂 x * ↑y⁻¹ :=
   exp_smul _ (ConjAct.toConjAct y) x
-#align exp_units_conj exp_units_conj
+#align exp_units_conj NormedSpace.exp_units_conj
 
 theorem exp_units_conj' (y : 𝔸ˣ) (x : 𝔸) : exp 𝕂 (↑y⁻¹ * x * y) = ↑y⁻¹ * exp 𝕂 x * y :=
   exp_units_conj _ _ _
-#align exp_units_conj' exp_units_conj'
+#align exp_units_conj' NormedSpace.exp_units_conj'
 
 @[simp]
-theorem Prod.fst_exp [CompleteSpace 𝔹] (x : 𝔸 Γ— 𝔹) : (exp 𝕂 x).fst = exp 𝕂 x.fst :=
+theorem _root_.Prod.fst_exp [CompleteSpace 𝔹] (x : 𝔸 Γ— 𝔹) : (exp 𝕂 x).fst = exp 𝕂 x.fst :=
   map_exp _ (RingHom.fst 𝔸 𝔹) continuous_fst x
 #align prod.fst_exp Prod.fst_exp
 
 @[simp]
-theorem Prod.snd_exp [CompleteSpace 𝔹] (x : 𝔸 Γ— 𝔹) : (exp 𝕂 x).snd = exp 𝕂 x.snd :=
+theorem _root_.Prod.snd_exp [CompleteSpace 𝔹] (x : 𝔸 Γ— 𝔹) : (exp 𝕂 x).snd = exp 𝕂 x.snd :=
   map_exp _ (RingHom.snd 𝔸 𝔹) continuous_snd x
 #align prod.snd_exp Prod.snd_exp
 
 @[simp]
-theorem Pi.exp_apply {ΞΉ : Type*} {𝔸 : ΞΉ β†’ Type*} [Fintype ΞΉ] [βˆ€ i, NormedRing (𝔸 i)]
+theorem _root_.Pi.exp_apply {ΞΉ : Type*} {𝔸 : ΞΉ β†’ Type*} [Fintype ΞΉ] [βˆ€ i, NormedRing (𝔸 i)]
     [βˆ€ i, NormedAlgebra 𝕂 (𝔸 i)] [βˆ€ i, CompleteSpace (𝔸 i)] (x : βˆ€ i, 𝔸 i) (i : ΞΉ) :
     exp 𝕂 x i = exp 𝕂 (x i) :=
   map_exp _ (Pi.evalRingHom 𝔸 i) (continuous_apply _) x
   -- porting note: Lean can now handle Ξ -types in type class inference!
 #align pi.exp_apply Pi.exp_apply
 
-theorem Pi.exp_def {ΞΉ : Type*} {𝔸 : ΞΉ β†’ Type*} [Fintype ΞΉ] [βˆ€ i, NormedRing (𝔸 i)]
+theorem _root_.Pi.exp_def {ΞΉ : Type*} {𝔸 : ΞΉ β†’ Type*} [Fintype ΞΉ] [βˆ€ i, NormedRing (𝔸 i)]
     [βˆ€ i, NormedAlgebra 𝕂 (𝔸 i)] [βˆ€ i, CompleteSpace (𝔸 i)] (x : βˆ€ i, 𝔸 i) :
     exp 𝕂 x = fun i => exp 𝕂 (x i) :=
   funext <| Pi.exp_apply 𝕂 x
 #align pi.exp_def Pi.exp_def
 
-theorem Function.update_exp {ΞΉ : Type*} {𝔸 : ΞΉ β†’ Type*} [Fintype ΞΉ] [DecidableEq ΞΉ]
+theorem _root_.Function.update_exp {ΞΉ : Type*} {𝔸 : ΞΉ β†’ Type*} [Fintype ΞΉ] [DecidableEq ΞΉ]
     [βˆ€ i, NormedRing (𝔸 i)] [βˆ€ i, NormedAlgebra 𝕂 (𝔸 i)] [βˆ€ i, CompleteSpace (𝔸 i)] (x : βˆ€ i, 𝔸 i)
     (j : ΞΉ) (xj : 𝔸 j) :
     Function.update (exp 𝕂 x) j (exp 𝕂 xj) = exp 𝕂 (Function.update x j xj) := by
@@ -571,7 +595,7 @@ end CompleteAlgebra
 
 theorem algebraMap_exp_comm (x : 𝕂) : algebraMap 𝕂 𝔸 (exp 𝕂 x) = exp 𝕂 (algebraMap 𝕂 𝔸 x) :=
   algebraMap_exp_comm_of_mem_ball x <| (expSeries_radius_eq_top 𝕂 𝕂).symm β–Έ edist_lt_top _ _
-#align algebra_map_exp_comm algebraMap_exp_comm
+#align algebra_map_exp_comm NormedSpace.algebraMap_exp_comm
 
 end AnyAlgebra
 
@@ -584,37 +608,37 @@ variable (𝕂)
 theorem norm_expSeries_div_summable (x : 𝔸) : Summable fun n => β€–(x ^ n / n ! : 𝔸)β€– :=
   norm_expSeries_div_summable_of_mem_ball 𝕂 x
     ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
-#align norm_exp_series_div_summable norm_expSeries_div_summable
+#align norm_exp_series_div_summable NormedSpace.norm_expSeries_div_summable
 
 variable [CompleteSpace 𝔸]
 
 theorem expSeries_div_summable (x : 𝔸) : Summable fun n => x ^ n / n ! :=
   (norm_expSeries_div_summable 𝕂 x).of_norm
-#align exp_series_div_summable expSeries_div_summable
+#align exp_series_div_summable NormedSpace.expSeries_div_summable
 
 theorem expSeries_div_hasSum_exp (x : 𝔸) : HasSum (fun n => x ^ n / n !) (exp 𝕂 x) :=
   expSeries_div_hasSum_exp_of_mem_ball 𝕂 x ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
-#align exp_series_div_has_sum_exp expSeries_div_hasSum_exp
+#align exp_series_div_has_sum_exp NormedSpace.expSeries_div_hasSum_exp
 
 variable {𝕂}
 
 theorem exp_neg (x : 𝔸) : exp 𝕂 (-x) = (exp 𝕂 x)⁻¹ :=
   exp_neg_of_mem_ball <| (expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _
-#align exp_neg exp_neg
+#align exp_neg NormedSpace.exp_neg
 
 theorem exp_zsmul (z : β„€) (x : 𝔸) : exp 𝕂 (z β€’ x) = exp 𝕂 x ^ z := by
   obtain ⟨n, rfl | rfl⟩ := z.eq_nat_or_neg
   Β· rw [zpow_ofNat, coe_nat_zsmul, exp_nsmul]
   Β· rw [zpow_neg, zpow_ofNat, neg_smul, exp_neg, coe_nat_zsmul, exp_nsmul]
-#align exp_zsmul exp_zsmul
+#align exp_zsmul NormedSpace.exp_zsmul
 
 theorem exp_conj (y : 𝔸) (x : 𝔸) (hy : y β‰  0) : exp 𝕂 (y * x * y⁻¹) = y * exp 𝕂 x * y⁻¹ :=
   exp_units_conj _ (Units.mk0 y hy) x
-#align exp_conj exp_conj
+#align exp_conj NormedSpace.exp_conj
 
 theorem exp_conj' (y : 𝔸) (x : 𝔸) (hy : y β‰  0) : exp 𝕂 (y⁻¹ * x * y) = y⁻¹ * exp 𝕂 x * y :=
   exp_units_conj' _ (Units.mk0 y hy) x
-#align exp_conj' exp_conj'
+#align exp_conj' NormedSpace.exp_conj'
 
 end DivisionAlgebra
 
@@ -627,13 +651,13 @@ variable {𝕂 𝔸 : Type*} [IsROrC 𝕂] [NormedCommRing 𝔸] [NormedAlgebra
 theorem exp_add {x y : 𝔸} : exp 𝕂 (x + y) = exp 𝕂 x * exp 𝕂 y :=
   exp_add_of_mem_ball ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
     ((expSeries_radius_eq_top 𝕂 𝔸).symm β–Έ edist_lt_top _ _)
-#align exp_add exp_add
+#align exp_add NormedSpace.exp_add
 
 /-- A version of `exp_sum_of_commute` for a commutative Banach-algebra. -/
 theorem exp_sum {ΞΉ} (s : Finset ΞΉ) (f : ΞΉ β†’ 𝔸) : exp 𝕂 (βˆ‘ i in s, f i) = ∏ i in s, exp 𝕂 (f i) := by
   rw [exp_sum_of_commute, Finset.noncommProd_eq_prod]
   exact fun i _hi j _hj _ => Commute.all _ _
-#align exp_sum exp_sum
+#align exp_sum NormedSpace.exp_sum
 
 end CommAlgebra
 
@@ -651,7 +675,7 @@ variable (𝕂 𝕂' 𝔸 : Type*) [Field 𝕂] [Field 𝕂'] [Ring 𝔸] [Algeb
 theorem expSeries_eq_expSeries (n : β„•) (x : 𝔸) :
     (expSeries 𝕂 𝔸 n fun _ => x) = expSeries 𝕂' 𝔸 n fun _ => x := by
   rw [expSeries_apply_eq, expSeries_apply_eq, inv_nat_cast_smul_eq 𝕂 𝕂']
-#align exp_series_eq_exp_series expSeries_eq_expSeries
+#align exp_series_eq_exp_series NormedSpace.expSeries_eq_expSeries
 
 /-- If a normed ring `𝔸` is a normed algebra over two fields, then they define the same
 exponential function on `𝔸`. -/
@@ -660,16 +684,16 @@ theorem exp_eq_exp : (exp 𝕂 : 𝔸 β†’ 𝔸) = exp 𝕂' := by
   rw [exp, exp]
   refine' tsum_congr fun n => _
   rw [expSeries_eq_expSeries 𝕂 𝕂' 𝔸 n x]
-#align exp_eq_exp exp_eq_exp
+#align exp_eq_exp NormedSpace.exp_eq_exp
 
 theorem exp_ℝ_β„‚_eq_exp_β„‚_β„‚ : (exp ℝ : β„‚ β†’ β„‚) = exp β„‚ :=
   exp_eq_exp ℝ β„‚ β„‚
-#align exp_ℝ_β„‚_eq_exp_β„‚_β„‚ exp_ℝ_β„‚_eq_exp_β„‚_β„‚
+#align exp_ℝ_β„‚_eq_exp_β„‚_β„‚ NormedSpace.exp_ℝ_β„‚_eq_exp_β„‚_β„‚
 
 /-- A version of `Complex.ofReal_exp` for `exp` instead of `Complex.exp` -/
 @[simp, norm_cast]
 theorem of_real_exp_ℝ_ℝ (r : ℝ) : ↑(exp ℝ r) = exp β„‚ (r : β„‚) :=
   (map_exp ℝ (algebraMap ℝ β„‚) (continuous_algebraMap _ _) r).trans (congr_fun exp_ℝ_β„‚_eq_exp_β„‚_β„‚ _)
-#align of_real_exp_ℝ_ℝ of_real_exp_ℝ_ℝ
+#align of_real_exp_ℝ_ℝ NormedSpace.of_real_exp_ℝ_ℝ
 
 end ScalarTower
chore: bump to v4.3.0-rc2 (#8366)

PR contents

This is the supremum of

along with some minor fixes from failures on nightly-testing as Mathlib master is merged into it.

Note that some PRs for changes that are already compatible with the current toolchain and will be necessary have already been split out: #8380.

I am hopeful that in future we will be able to progressively merge adaptation PRs into a bump/v4.X.0 branch, so we never end up with a "big merge" like this. However one of these adaptation PRs (#8056) predates my new scheme for combined CI, and it wasn't possible to keep that PR viable in the meantime.

Lean PRs involved in this bump

In particular this includes adjustments for the Lean PRs

leanprover/lean4#2778

We can get rid of all the

local macro_rules | `($x ^ $y) => `(HPow.hPow $x $y) -- Porting note: See issue [lean4#2220](https://github.com/leanprover/lean4/pull/2220)

macros across Mathlib (and in any projects that want to write natural number powers of reals).

leanprover/lean4#2722

Changes the default behaviour of simp to (config := {decide := false}). This makes simp (and consequentially norm_num) less powerful, but also more consistent, and less likely to blow up in long failures. This requires a variety of changes: changing some previously by simp or norm_num to decide or rfl, or adding (config := {decide := true}).

leanprover/lean4#2783

This changed the behaviour of simp so that simp [f] will only unfold "fully applied" occurrences of f. The old behaviour can be recovered with simp (config := { unfoldPartialApp := true }). We may in future add a syntax for this, e.g. simp [!f]; please provide feedback! In the meantime, we have made the following changes:

  • switching to using explicit lemmas that have the intended level of application
  • (config := { unfoldPartialApp := true }) in some places, to recover the old behaviour
  • Using @[eqns] to manually adjust the equation lemmas for a particular definition, recovering the old behaviour just for that definition. See #8371, where we do this for Function.comp and Function.flip.

This change in Lean may require further changes down the line (e.g. adding the !f syntax, and/or upstreaming the special treatment for Function.comp and Function.flip, and/or removing this special treatment). Please keep an open and skeptical mind about these changes!

Co-authored-by: leanprover-community-mathlib4-bot <leanprover-community-mathlib4-bot@users.noreply.github.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Mauricio Collares <mauricio@collares.org>

Diff
@@ -312,7 +312,7 @@ theorem map_exp_of_mem_ball {F} [RingHomClass F 𝔸 𝔹] (f : F) (hf : Continu
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : f (exp 𝕂 x) = exp 𝕂 (f x) := by
   rw [exp_eq_tsum, exp_eq_tsum]
   refine' ((expSeries_summable_of_mem_ball' _ hx).hasSum.map f hf).tsum_eq.symm.trans _
-  dsimp only [Function.comp]
+  dsimp only [Function.comp_def]
   simp_rw [map_inv_nat_cast_smul f 𝕂 𝕂, map_pow]
 #align map_exp_of_mem_ball map_exp_of_mem_ball
 
chore(InfiniteSum): use dot notation (#8358)

Rename

  • summable_of_norm_bounded -> Summable.of_norm_bounded;
  • summable_of_norm_bounded_eventually -> Summable.of_norm_bounded_eventually;
  • summable_of_nnnorm_bounded -> Summable.of_nnnorm_bounded;
  • summable_of_summable_norm -> Summable.of_norm;
  • summable_of_summable_nnnorm -> Summable.of_nnnorm;

New lemmas

  • Summable.of_norm_bounded_eventually_nat
  • Summable.norm

Misc changes

  • Golf a few proofs.
Diff
@@ -213,13 +213,13 @@ variable [CompleteSpace 𝔸]
 theorem expSeries_summable_of_mem_ball (x : 𝔸)
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     Summable fun n => expSeries 𝕂 𝔸 n fun _ => x :=
-  summable_of_summable_norm (norm_expSeries_summable_of_mem_ball x hx)
+  (norm_expSeries_summable_of_mem_ball x hx).of_norm
 #align exp_series_summable_of_mem_ball expSeries_summable_of_mem_ball
 
 theorem expSeries_summable_of_mem_ball' (x : 𝔸)
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     Summable fun n => (n !⁻¹ : 𝕂) β€’ x ^ n :=
-  summable_of_summable_norm (norm_expSeries_summable_of_mem_ball' x hx)
+  (norm_expSeries_summable_of_mem_ball' x hx).of_norm
 #align exp_series_summable_of_mem_ball' expSeries_summable_of_mem_ball'
 
 theorem expSeries_hasSum_exp_of_mem_ball (x : 𝔸)
@@ -342,7 +342,7 @@ theorem norm_expSeries_div_summable_of_mem_ball (x : 𝔸)
 
 theorem expSeries_div_summable_of_mem_ball [CompleteSpace 𝔸] (x : 𝔸)
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) : Summable fun n => x ^ n / n ! :=
-  summable_of_summable_norm (norm_expSeries_div_summable_of_mem_ball 𝕂 x hx)
+  (norm_expSeries_div_summable_of_mem_ball 𝕂 x hx).of_norm
 #align exp_series_div_summable_of_mem_ball expSeries_div_summable_of_mem_ball
 
 theorem expSeries_div_hasSum_exp_of_mem_ball [CompleteSpace 𝔸] (x : 𝔸)
@@ -389,7 +389,7 @@ variable [NormedRing 𝔹] [NormedAlgebra 𝕂 𝔹]
 has an infinite radius of convergence. -/
 theorem expSeries_radius_eq_top : (expSeries 𝕂 𝔸).radius = ∞ := by
   refine' (expSeries 𝕂 𝔸).radius_eq_top_of_summable_norm fun r => _
-  refine' summable_of_norm_bounded_eventually _ (Real.summable_pow_div_factorial r) _
+  refine' .of_norm_bounded_eventually _ (Real.summable_pow_div_factorial r) _
   filter_upwards [eventually_cofinite_ne 0] with n hn
   rw [norm_mul, norm_norm (expSeries 𝕂 𝔸 n), expSeries]
   rw [norm_smul (n ! : 𝕂)⁻¹ (ContinuousMultilinearMap.mkPiAlgebraFin 𝕂 n 𝔸)]
@@ -420,11 +420,11 @@ section CompleteAlgebra
 variable [CompleteSpace 𝔸]
 
 theorem expSeries_summable (x : 𝔸) : Summable fun n => expSeries 𝕂 𝔸 n fun _ => x :=
-  summable_of_summable_norm (norm_expSeries_summable x)
+  (norm_expSeries_summable x).of_norm
 #align exp_series_summable expSeries_summable
 
 theorem expSeries_summable' (x : 𝔸) : Summable fun n => (n !⁻¹ : 𝕂) β€’ x ^ n :=
-  summable_of_summable_norm (norm_expSeries_summable' x)
+  (norm_expSeries_summable' x).of_norm
 #align exp_series_summable' expSeries_summable'
 
 theorem expSeries_hasSum_exp (x : 𝔸) : HasSum (fun n => expSeries 𝕂 𝔸 n fun _ => x) (exp 𝕂 x) :=
@@ -589,7 +589,7 @@ theorem norm_expSeries_div_summable (x : 𝔸) : Summable fun n => β€–(x ^ n / n
 variable [CompleteSpace 𝔸]
 
 theorem expSeries_div_summable (x : 𝔸) : Summable fun n => x ^ n / n ! :=
-  summable_of_summable_norm (norm_expSeries_div_summable 𝕂 x)
+  (norm_expSeries_div_summable 𝕂 x).of_norm
 #align exp_series_div_summable expSeries_div_summable
 
 theorem expSeries_div_hasSum_exp (x : 𝔸) : HasSum (fun n => x ^ n / n !) (exp 𝕂 x) :=
feat(Data.Finset.Antidiagonal): generalize Finset.Nat.antidiagonal (#7486)

We define a type class Finset.HasAntidiagonal A which contains a function antidiagonal : A β†’ Finset (A Γ— A) such that antidiagonal n is the Finset of all pairs adding to n, as witnessed by mem_antidiagonal.

When A is a canonically ordered add monoid with locally finite order this typeclass can be instantiated with Finset.antidiagonalOfLocallyFinite. This applies in particular when A is β„•, more generally or Οƒ β†’β‚€ β„•, or even ΞΉ β†’β‚€ A under the additional assumption OrderedSub A that make it a canonically ordered add monoid. (In fact, we would just need an AddMonoid with a compatible order, finite Iic, such that if a + b = n, then a, b ≀ n, and any finiteness condition would be OK.)

For computational reasons it is better to manually provide instances for β„• and Οƒ β†’β‚€ β„•, to avoid quadratic runtime performance. These instances are provided as Finset.Nat.instHasAntidiagonal and Finsupp.instHasAntidiagonal. This is why Finset.antidiagonalOfLocallyFinite is an abbrev and not an instance.

This definition does not exactly match with that of Multiset.antidiagonal defined in Mathlib.Data.Multiset.Antidiagonal, because of the multiplicities. Indeed, by counting multiplicities, Multiset Ξ± is equivalent to Ξ± β†’β‚€ β„•, but Finset.antidiagonal and Multiset.antidiagonal will return different objects. For example, for s : Multiset β„• := {0,0,0}, Multiset.antidiagonal s has 8 elements but Finset.antidiagonal s has only 4.

def s : Multiset β„• := {0, 0, 0}
#eval (Finset.antidiagonal s).card -- 4
#eval Multiset.card (Multiset.antidiagonal s) -- 8

TODO

  • Define HasMulAntidiagonal (for monoids). For PNat, we will recover the set of divisors of a strictly positive integer.

This closes #7917

Co-authored by: MarΓ­a InΓ©s de Frutos-FernΓ‘ndez <mariaines.dff@gmail.com> and Eric Wieser <efw27@cam.ac.uk>

Co-authored-by: Antoine Chambert-Loir <antoine.chambert-loir@math.univ-paris-diderot.fr> Co-authored-by: Mario Carneiro <di.gama@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -271,8 +271,8 @@ theorem exp_add_of_commute_of_mem_ball [CharZero 𝕂] {x y : 𝔸} (hxy : Commu
     ext
     rw [hxy.add_pow' _, Finset.smul_sum]
   refine' tsum_congr fun n => Finset.sum_congr rfl fun kl hkl => _
-  rw [nsmul_eq_smul_cast 𝕂, smul_smul, smul_mul_smul, ← Finset.Nat.mem_antidiagonal.mp hkl,
-    Nat.cast_add_choose, Finset.Nat.mem_antidiagonal.mp hkl]
+  rw [nsmul_eq_smul_cast 𝕂, smul_smul, smul_mul_smul, ← Finset.mem_antidiagonal.mp hkl,
+    Nat.cast_add_choose, Finset.mem_antidiagonal.mp hkl]
   congr 1
   have : (n ! : 𝕂) β‰  0 := Nat.cast_ne_zero.mpr n.factorial_ne_zero
   field_simp [this]
chore: missing spaces after rcases, convert and congrm (#7725)

Replace rcases( with rcases (. Same thing for convert( and congrm(. No other change.

Diff
@@ -303,7 +303,8 @@ theorem isUnit_exp_of_mem_ball [CharZero 𝕂] {x : 𝔸}
 
 theorem invOf_exp_of_mem_ball [CharZero 𝕂] {x : 𝔸}
     (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) [Invertible (exp 𝕂 x)] :
-    β…Ÿ (exp 𝕂 x) = exp 𝕂 (-x) := by letI := invertibleExpOfMemBall hx; convert(rfl : β…Ÿ (exp 𝕂 x) = _)
+    β…Ÿ (exp 𝕂 x) = exp 𝕂 (-x) := by
+  letI := invertibleExpOfMemBall hx; convert (rfl : β…Ÿ (exp 𝕂 x) = _)
 #align inv_of_exp_of_mem_ball invOf_exp_of_mem_ball
 
 /-- Any continuous ring homomorphism commutes with `exp`. -/
chore: attempt to fix broken links in docs (#7350)

For example, the page of Mathlib.Data.List.BigOperators.Basic is trying to link to Mathlib.Data.List.Defs using ./defs but that becomes ../../../../././defs and a broken link.

Co-authored-by: Malvin Gattinger <malvin@w4eg.de>

Diff
@@ -84,7 +84,7 @@ variable {𝔸}
 It is defined as the sum of the `FormalMultilinearSeries` `expSeries 𝕂 𝔸`.
 
 Note that when `𝔸 = Matrix n n 𝕂`, this is the **Matrix Exponential**; see
-[`Analysis.NormedSpace.MatrixExponential`](../MatrixExponential) for lemmas specific to that
+[`Analysis.NormedSpace.MatrixExponential`](./MatrixExponential) for lemmas specific to that
 case. -/
 noncomputable def exp (x : 𝔸) : 𝔸 :=
   (expSeries 𝕂 𝔸).sum x
chore: remove unused simps (#6632)

Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -312,7 +312,7 @@ theorem map_exp_of_mem_ball {F} [RingHomClass F 𝔸 𝔹] (f : F) (hf : Continu
   rw [exp_eq_tsum, exp_eq_tsum]
   refine' ((expSeries_summable_of_mem_ball' _ hx).hasSum.map f hf).tsum_eq.symm.trans _
   dsimp only [Function.comp]
-  simp_rw [one_div, map_inv_nat_cast_smul f 𝕂 𝕂, map_pow]
+  simp_rw [map_inv_nat_cast_smul f 𝕂 𝕂, map_pow]
 #align map_exp_of_mem_ball map_exp_of_mem_ball
 
 end CompleteAlgebra
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -70,7 +70,7 @@ open scoped Nat Topology BigOperators ENNReal
 
 section TopologicalAlgebra
 
-variable (𝕂 𝔸 : Type _) [Field 𝕂] [Ring 𝔸] [Algebra 𝕂 𝔸] [TopologicalSpace 𝔸] [TopologicalRing 𝔸]
+variable (𝕂 𝔸 : Type*) [Field 𝕂] [Ring 𝔸] [Algebra 𝕂 𝔸] [TopologicalSpace 𝔸] [TopologicalRing 𝔸]
 
 /-- `expSeries 𝕂 𝔸` is the `FormalMultilinearSeries` whose `n`-th term is the map
 `(xα΅’) : 𝔸ⁿ ↦ (1/n! : 𝕂) β€’ ∏ xα΅’`. Its sum is the exponential map `exp 𝕂 : 𝔸 β†’ 𝔸`. -/
@@ -161,7 +161,7 @@ end TopologicalAlgebra
 
 section TopologicalDivisionAlgebra
 
-variable {𝕂 𝔸 : Type _} [Field 𝕂] [DivisionRing 𝔸] [Algebra 𝕂 𝔸] [TopologicalSpace 𝔸]
+variable {𝕂 𝔸 : Type*} [Field 𝕂] [DivisionRing 𝔸] [Algebra 𝕂 𝔸] [TopologicalSpace 𝔸]
   [TopologicalRing 𝔸]
 
 theorem expSeries_apply_eq_div (x : 𝔸) (n : β„•) : (expSeries 𝕂 𝔸 n fun _ => x) = x ^ n / n ! := by
@@ -188,7 +188,7 @@ section Normed
 
 section AnyFieldAnyAlgebra
 
-variable {𝕂 𝔸 𝔹 : Type _} [NontriviallyNormedField 𝕂]
+variable {𝕂 𝔸 𝔹 : Type*} [NontriviallyNormedField 𝕂]
 
 variable [NormedRing 𝔸] [NormedRing 𝔹] [NormedAlgebra 𝕂 𝔸] [NormedAlgebra 𝕂 𝔹]
 
@@ -327,7 +327,7 @@ end AnyFieldAnyAlgebra
 
 section AnyFieldDivisionAlgebra
 
-variable {𝕂 𝔸 : Type _} [NontriviallyNormedField 𝕂] [NormedDivisionRing 𝔸] [NormedAlgebra 𝕂 𝔸]
+variable {𝕂 𝔸 : Type*} [NontriviallyNormedField 𝕂] [NormedDivisionRing 𝔸] [NormedAlgebra 𝕂 𝔸]
 
 variable (𝕂)
 
@@ -363,7 +363,7 @@ end AnyFieldDivisionAlgebra
 
 section AnyFieldCommAlgebra
 
-variable {𝕂 𝔸 : Type _} [NontriviallyNormedField 𝕂] [NormedCommRing 𝔸] [NormedAlgebra 𝕂 𝔸]
+variable {𝕂 𝔸 : Type*} [NontriviallyNormedField 𝕂] [NormedCommRing 𝔸] [NormedAlgebra 𝕂 𝔸]
   [CompleteSpace 𝔸]
 
 /-- In a commutative Banach-algebra `𝔸` over a normed field `𝕂` of characteristic zero,
@@ -380,7 +380,7 @@ section IsROrC
 
 section AnyAlgebra
 
-variable (𝕂 𝔸 𝔹 : Type _) [IsROrC 𝕂] [NormedRing 𝔸] [NormedAlgebra 𝕂 𝔸]
+variable (𝕂 𝔸 𝔹 : Type*) [IsROrC 𝕂] [NormedRing 𝔸] [NormedAlgebra 𝕂 𝔸]
 
 variable [NormedRing 𝔹] [NormedAlgebra 𝕂 𝔹]
 
@@ -544,20 +544,20 @@ theorem Prod.snd_exp [CompleteSpace 𝔹] (x : 𝔸 Γ— 𝔹) : (exp 𝕂 x).snd
 #align prod.snd_exp Prod.snd_exp
 
 @[simp]
-theorem Pi.exp_apply {ΞΉ : Type _} {𝔸 : ΞΉ β†’ Type _} [Fintype ΞΉ] [βˆ€ i, NormedRing (𝔸 i)]
+theorem Pi.exp_apply {ΞΉ : Type*} {𝔸 : ΞΉ β†’ Type*} [Fintype ΞΉ] [βˆ€ i, NormedRing (𝔸 i)]
     [βˆ€ i, NormedAlgebra 𝕂 (𝔸 i)] [βˆ€ i, CompleteSpace (𝔸 i)] (x : βˆ€ i, 𝔸 i) (i : ΞΉ) :
     exp 𝕂 x i = exp 𝕂 (x i) :=
   map_exp _ (Pi.evalRingHom 𝔸 i) (continuous_apply _) x
   -- porting note: Lean can now handle Ξ -types in type class inference!
 #align pi.exp_apply Pi.exp_apply
 
-theorem Pi.exp_def {ΞΉ : Type _} {𝔸 : ΞΉ β†’ Type _} [Fintype ΞΉ] [βˆ€ i, NormedRing (𝔸 i)]
+theorem Pi.exp_def {ΞΉ : Type*} {𝔸 : ΞΉ β†’ Type*} [Fintype ΞΉ] [βˆ€ i, NormedRing (𝔸 i)]
     [βˆ€ i, NormedAlgebra 𝕂 (𝔸 i)] [βˆ€ i, CompleteSpace (𝔸 i)] (x : βˆ€ i, 𝔸 i) :
     exp 𝕂 x = fun i => exp 𝕂 (x i) :=
   funext <| Pi.exp_apply 𝕂 x
 #align pi.exp_def Pi.exp_def
 
-theorem Function.update_exp {ΞΉ : Type _} {𝔸 : ΞΉ β†’ Type _} [Fintype ΞΉ] [DecidableEq ΞΉ]
+theorem Function.update_exp {ΞΉ : Type*} {𝔸 : ΞΉ β†’ Type*} [Fintype ΞΉ] [DecidableEq ΞΉ]
     [βˆ€ i, NormedRing (𝔸 i)] [βˆ€ i, NormedAlgebra 𝕂 (𝔸 i)] [βˆ€ i, CompleteSpace (𝔸 i)] (x : βˆ€ i, 𝔸 i)
     (j : ΞΉ) (xj : 𝔸 j) :
     Function.update (exp 𝕂 x) j (exp 𝕂 xj) = exp 𝕂 (Function.update x j xj) := by
@@ -576,7 +576,7 @@ end AnyAlgebra
 
 section DivisionAlgebra
 
-variable {𝕂 𝔸 : Type _} [IsROrC 𝕂] [NormedDivisionRing 𝔸] [NormedAlgebra 𝕂 𝔸]
+variable {𝕂 𝔸 : Type*} [IsROrC 𝕂] [NormedDivisionRing 𝔸] [NormedAlgebra 𝕂 𝔸]
 
 variable (𝕂)
 
@@ -619,7 +619,7 @@ end DivisionAlgebra
 
 section CommAlgebra
 
-variable {𝕂 𝔸 : Type _} [IsROrC 𝕂] [NormedCommRing 𝔸] [NormedAlgebra 𝕂 𝔸] [CompleteSpace 𝔸]
+variable {𝕂 𝔸 : Type*} [IsROrC 𝕂] [NormedCommRing 𝔸] [NormedAlgebra 𝕂 𝔸] [CompleteSpace 𝔸]
 
 /-- In a commutative Banach-algebra `𝔸` over `𝕂 = ℝ` or `𝕂 = β„‚`,
 `exp 𝕂 (x+y) = (exp 𝕂 x) * (exp 𝕂 y)`. -/
@@ -642,7 +642,7 @@ end Normed
 
 section ScalarTower
 
-variable (𝕂 𝕂' 𝔸 : Type _) [Field 𝕂] [Field 𝕂'] [Ring 𝔸] [Algebra 𝕂 𝔸] [Algebra 𝕂' 𝔸]
+variable (𝕂 𝕂' 𝔸 : Type*) [Field 𝕂] [Field 𝕂'] [Ring 𝔸] [Algebra 𝕂 𝔸] [Algebra 𝕂' 𝔸]
   [TopologicalSpace 𝔸] [TopologicalRing 𝔸]
 
 /-- If a normed ring `𝔸` is a normed algebra over two fields, then they define the same
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2021 Anatole Dedecker. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anatole Dedecker, Eric Wieser
-
-! This file was ported from Lean 3 source module analysis.normed_space.exponential
-! leanprover-community/mathlib commit 62748956a1ece9b26b33243e2e3a2852176666f5
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Analysis.Analytic.Basic
 import Mathlib.Analysis.Complex.Basic
@@ -15,6 +10,8 @@ import Mathlib.Data.Nat.Choose.Cast
 import Mathlib.Data.Finset.NoncommProd
 import Mathlib.Topology.Algebra.Algebra
 
+#align_import analysis.normed_space.exponential from "leanprover-community/mathlib"@"62748956a1ece9b26b33243e2e3a2852176666f5"
+
 /-!
 # Exponential in a Banach algebra
 
feat(Topology.Algebra.InfiniteSum): make sure that tsum and sum coincide on fintypes (#5914)

Currently, when s is a fintype, it is possible that βˆ‘' x, f x β‰  βˆ‘ x, f x (if the topology of the target space is not separated), as the infinite sum βˆ‘' picks some limit if it exists, but not necessarily the one we prefer.

This PR tweaks the definition of infinite sums to make sure that, when a function is finitely supported, the chosen limit for its infinite sum is the (finite) sum of its values. This makes it possible to remove a few separation assumption here and there.

Diff
@@ -121,7 +121,7 @@ theorem expSeries_apply_zero (n : β„•) :
 #align exp_series_apply_zero expSeries_apply_zero
 
 @[simp]
-theorem exp_zero [T2Space 𝔸] : exp 𝕂 (0 : 𝔸) = 1 := by
+theorem exp_zero : exp 𝕂 (0 : 𝔸) = 1 := by
   simp_rw [exp_eq_tsum, ← expSeries_apply_eq, expSeries_apply_zero, tsum_pi_single]
 #align exp_zero exp_zero
 
chore: remove occurrences of semicolon after space (#5713)

This is the second half of the changes originally in #5699, removing all occurrences of ; after a space and implementing a linter rule to enforce it.

In most cases this 2-character substring has a space after it, so the following command was run first:

find . -type f -name "*.lean" -exec sed -i -E 's/ ; /; /g' {} \;

The remaining cases were few enough in number that they were done manually.

Diff
@@ -255,7 +255,7 @@ theorem continuousOn_exp : ContinuousOn (exp 𝕂 : 𝔸 β†’ 𝔸) (EMetric.ball
 theorem analyticAt_exp_of_mem_ball (x : 𝔸) (hx : x ∈ EMetric.ball (0 : 𝔸) (expSeries 𝕂 𝔸).radius) :
     AnalyticAt 𝕂 (exp 𝕂) x := by
   by_cases h : (expSeries 𝕂 𝔸).radius = 0
-  Β· rw [h] at hx ; exact (ENNReal.not_lt_zero hx).elim
+  Β· rw [h] at hx; exact (ENNReal.not_lt_zero hx).elim
   Β· have h := pos_iff_ne_zero.mpr h
     exact (hasFPowerSeriesOnBall_exp_of_radius_pos h).analyticAt_of_mem hx
 #align analytic_at_exp_of_mem_ball analyticAt_exp_of_mem_ball
feat: port Analysis.NormedSpace.Exponential (#4567)

Dependencies 12 + 750

751 files ported (98.4%)
336898 lines ported (98.4%)
Show graph

The unported dependencies are

The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file