analysis.analytic.linear ⟷ Mathlib.Analysis.Analytic.Linear

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)

(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)

(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)

(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)

(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
@@ -3,7 +3,7 @@ Copyright (c) 2021 Yury G. Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury G. Kudryashov
 -/
-import Mathbin.Analysis.Analytic.Basic
+import Analysis.Analytic.Basic
 
 #align_import analysis.analytic.linear from "leanprover-community/mathlib"@"af471b9e3ce868f296626d33189b4ce730fa4c00"
 
Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2021 Yury G. Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury G. Kudryashov
-
-! This file was ported from Lean 3 source module analysis.analytic.linear
-! 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
 
+#align_import analysis.analytic.linear from "leanprover-community/mathlib"@"af471b9e3ce868f296626d33189b4ce730fa4c00"
+
 /-!
 # Linear functions are analytic
 
Diff
@@ -44,16 +44,21 @@ def fpowerSeries (f : E β†’L[π•œ] F) (x : E) : FormalMultilinearSeries π•œ E F
 #align continuous_linear_map.fpower_series ContinuousLinearMap.fpowerSeries
 -/
 
+#print ContinuousLinearMap.fpowerSeries_apply_add_two /-
 @[simp]
 theorem fpowerSeries_apply_add_two (f : E β†’L[π•œ] F) (x : E) (n : β„•) : f.fpowerSeries x (n + 2) = 0 :=
   rfl
 #align continuous_linear_map.fpower_series_apply_add_two ContinuousLinearMap.fpowerSeries_apply_add_two
+-/
 
+#print ContinuousLinearMap.fpowerSeries_radius /-
 @[simp]
 theorem fpowerSeries_radius (f : E β†’L[π•œ] F) (x : E) : (f.fpowerSeries x).radius = ∞ :=
   (f.fpowerSeries x).radius_eq_top_of_forall_image_add_eq_zero 2 fun n => rfl
 #align continuous_linear_map.fpower_series_radius ContinuousLinearMap.fpowerSeries_radius
+-/
 
+#print ContinuousLinearMap.hasFPowerSeriesOnBall /-
 protected theorem hasFPowerSeriesOnBall (f : E β†’L[π•œ] F) (x : E) :
     HasFPowerSeriesOnBall f (f.fpowerSeries x) x ∞ :=
   { r_le := by simp
@@ -61,15 +66,20 @@ protected theorem hasFPowerSeriesOnBall (f : E β†’L[π•œ] F) (x : E) :
     HasSum := fun y _ =>
       (hasSum_nat_add_iff' 2).1 <| by simp [Finset.sum_range_succ, ← sub_sub, hasSum_zero] }
 #align continuous_linear_map.has_fpower_series_on_ball ContinuousLinearMap.hasFPowerSeriesOnBall
+-/
 
+#print ContinuousLinearMap.hasFPowerSeriesAt /-
 protected theorem hasFPowerSeriesAt (f : E β†’L[π•œ] F) (x : E) :
     HasFPowerSeriesAt f (f.fpowerSeries x) x :=
   ⟨∞, f.HasFPowerSeriesOnBall x⟩
 #align continuous_linear_map.has_fpower_series_at ContinuousLinearMap.hasFPowerSeriesAt
+-/
 
+#print ContinuousLinearMap.analyticAt /-
 protected theorem analyticAt (f : E β†’L[π•œ] F) (x : E) : AnalyticAt π•œ f x :=
   (f.HasFPowerSeriesAt x).AnalyticAt
 #align continuous_linear_map.analytic_at ContinuousLinearMap.analyticAt
+-/
 
 #print ContinuousLinearMap.uncurryBilinear /-
 /-- Reinterpret a bilinear map `f : E β†’L[π•œ] F β†’L[π•œ] G` as a multilinear map
@@ -83,11 +93,13 @@ def uncurryBilinear (f : E β†’L[π•œ] F β†’L[π•œ] G) : E Γ— F[Γ—2]β†’L[π•œ] G
 #align continuous_linear_map.uncurry_bilinear ContinuousLinearMap.uncurryBilinear
 -/
 
+#print ContinuousLinearMap.uncurryBilinear_apply /-
 @[simp]
 theorem uncurryBilinear_apply (f : E β†’L[π•œ] F β†’L[π•œ] G) (m : Fin 2 β†’ E Γ— F) :
     f.uncurryBilinear m = f (m 0).1 (m 1).2 :=
   rfl
 #align continuous_linear_map.uncurry_bilinear_apply ContinuousLinearMap.uncurryBilinear_apply
+-/
 
 #print ContinuousLinearMap.fpowerSeriesBilinear /-
 /-- Formal multilinear series expansion of a bilinear function `f : E β†’L[π•œ] F β†’L[π•œ] G`. -/
@@ -100,12 +112,15 @@ def fpowerSeriesBilinear (f : E β†’L[π•œ] F β†’L[π•œ] G) (x : E Γ— F) : Formal
 #align continuous_linear_map.fpower_series_bilinear ContinuousLinearMap.fpowerSeriesBilinear
 -/
 
+#print ContinuousLinearMap.fpowerSeriesBilinear_radius /-
 @[simp]
 theorem fpowerSeriesBilinear_radius (f : E β†’L[π•œ] F β†’L[π•œ] G) (x : E Γ— F) :
     (f.fpowerSeriesBilinear x).radius = ∞ :=
   (f.fpowerSeriesBilinear x).radius_eq_top_of_forall_image_add_eq_zero 3 fun n => rfl
 #align continuous_linear_map.fpower_series_bilinear_radius ContinuousLinearMap.fpowerSeriesBilinear_radius
+-/
 
+#print ContinuousLinearMap.hasFPowerSeriesOnBall_bilinear /-
 protected theorem hasFPowerSeriesOnBall_bilinear (f : E β†’L[π•œ] F β†’L[π•œ] G) (x : E Γ— F) :
     HasFPowerSeriesOnBall (fun x : E Γ— F => f x.1 x.2) (f.fpowerSeriesBilinear x) x ∞ :=
   { r_le := by simp
@@ -117,16 +132,21 @@ protected theorem hasFPowerSeriesOnBall_bilinear (f : E β†’L[π•œ] F β†’L[π•œ]
           f.map_add_add]
         dsimp; simp only [add_comm, sub_self, hasSum_zero] }
 #align continuous_linear_map.has_fpower_series_on_ball_bilinear ContinuousLinearMap.hasFPowerSeriesOnBall_bilinear
+-/
 
+#print ContinuousLinearMap.hasFPowerSeriesAt_bilinear /-
 protected theorem hasFPowerSeriesAt_bilinear (f : E β†’L[π•œ] F β†’L[π•œ] G) (x : E Γ— F) :
     HasFPowerSeriesAt (fun x : E Γ— F => f x.1 x.2) (f.fpowerSeriesBilinear x) x :=
   ⟨∞, f.hasFPowerSeriesOnBall_bilinear x⟩
 #align continuous_linear_map.has_fpower_series_at_bilinear ContinuousLinearMap.hasFPowerSeriesAt_bilinear
+-/
 
+#print ContinuousLinearMap.analyticAt_bilinear /-
 protected theorem analyticAt_bilinear (f : E β†’L[π•œ] F β†’L[π•œ] G) (x : E Γ— F) :
     AnalyticAt π•œ (fun x : E Γ— F => f x.1 x.2) x :=
   (f.hasFPowerSeriesAt_bilinear x).AnalyticAt
 #align continuous_linear_map.analytic_at_bilinear ContinuousLinearMap.analyticAt_bilinear
+-/
 
 end ContinuousLinearMap
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury G. Kudryashov
 
 ! This file was ported from Lean 3 source module analysis.analytic.linear
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
+! leanprover-community/mathlib commit af471b9e3ce868f296626d33189b4ce730fa4c00
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -13,6 +13,9 @@ import Mathbin.Analysis.Analytic.Basic
 /-!
 # Linear functions are analytic
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 In this file we prove that a `continuous_linear_map` defines an analytic function with
 the formal power series `f x = f a + f (x - a)`.
 -/
@@ -30,6 +33,7 @@ noncomputable section
 
 namespace ContinuousLinearMap
 
+#print ContinuousLinearMap.fpowerSeries /-
 /-- Formal power series of a continuous linear map `f : E β†’L[π•œ] F` at `x : E`:
 `f y = f x + f (y - x)`. -/
 @[simp]
@@ -38,6 +42,7 @@ def fpowerSeries (f : E β†’L[π•œ] F) (x : E) : FormalMultilinearSeries π•œ E F
   | 1 => (continuousMultilinearCurryFin1 π•œ E F).symm f
   | _ => 0
 #align continuous_linear_map.fpower_series ContinuousLinearMap.fpowerSeries
+-/
 
 @[simp]
 theorem fpowerSeries_apply_add_two (f : E β†’L[π•œ] F) (x : E) (n : β„•) : f.fpowerSeries x (n + 2) = 0 :=
@@ -66,6 +71,7 @@ protected theorem analyticAt (f : E β†’L[π•œ] F) (x : E) : AnalyticAt π•œ f x
   (f.HasFPowerSeriesAt x).AnalyticAt
 #align continuous_linear_map.analytic_at ContinuousLinearMap.analyticAt
 
+#print ContinuousLinearMap.uncurryBilinear /-
 /-- Reinterpret a bilinear map `f : E β†’L[π•œ] F β†’L[π•œ] G` as a multilinear map
 `(E Γ— F) [Γ—2]β†’L[π•œ] G`. This multilinear map is the second term in the formal
 multilinear series expansion of `uncurry f`. It is given by
@@ -75,6 +81,7 @@ def uncurryBilinear (f : E β†’L[π•œ] F β†’L[π•œ] G) : E Γ— F[Γ—2]β†’L[π•œ] G
     (↑(continuousMultilinearCurryFin1 π•œ (E Γ— F) G).symm : (E Γ— F β†’L[π•œ] G) β†’L[π•œ] _).comp <|
       f.bilinearComp (fst _ _ _) (snd _ _ _)
 #align continuous_linear_map.uncurry_bilinear ContinuousLinearMap.uncurryBilinear
+-/
 
 @[simp]
 theorem uncurryBilinear_apply (f : E β†’L[π•œ] F β†’L[π•œ] G) (m : Fin 2 β†’ E Γ— F) :
@@ -82,6 +89,7 @@ theorem uncurryBilinear_apply (f : E β†’L[π•œ] F β†’L[π•œ] G) (m : Fin 2 β†’ E
   rfl
 #align continuous_linear_map.uncurry_bilinear_apply ContinuousLinearMap.uncurryBilinear_apply
 
+#print ContinuousLinearMap.fpowerSeriesBilinear /-
 /-- Formal multilinear series expansion of a bilinear function `f : E β†’L[π•œ] F β†’L[π•œ] G`. -/
 @[simp]
 def fpowerSeriesBilinear (f : E β†’L[π•œ] F β†’L[π•œ] G) (x : E Γ— F) : FormalMultilinearSeries π•œ (E Γ— F) G
@@ -90,6 +98,7 @@ def fpowerSeriesBilinear (f : E β†’L[π•œ] F β†’L[π•œ] G) (x : E Γ— F) : Formal
   | 2 => f.uncurryBilinear
   | _ => 0
 #align continuous_linear_map.fpower_series_bilinear ContinuousLinearMap.fpowerSeriesBilinear
+-/
 
 @[simp]
 theorem fpowerSeriesBilinear_radius (f : E β†’L[π•œ] F β†’L[π•œ] G) (x : E Γ— F) :
Diff
@@ -49,21 +49,21 @@ theorem fpowerSeries_radius (f : E β†’L[π•œ] F) (x : E) : (f.fpowerSeries x).ra
   (f.fpowerSeries x).radius_eq_top_of_forall_image_add_eq_zero 2 fun n => rfl
 #align continuous_linear_map.fpower_series_radius ContinuousLinearMap.fpowerSeries_radius
 
-protected theorem hasFpowerSeriesOnBall (f : E β†’L[π•œ] F) (x : E) :
-    HasFpowerSeriesOnBall f (f.fpowerSeries x) x ∞ :=
+protected theorem hasFPowerSeriesOnBall (f : E β†’L[π•œ] F) (x : E) :
+    HasFPowerSeriesOnBall f (f.fpowerSeries x) x ∞ :=
   { r_le := by simp
     r_pos := ENNReal.coe_lt_top
     HasSum := fun y _ =>
       (hasSum_nat_add_iff' 2).1 <| by simp [Finset.sum_range_succ, ← sub_sub, hasSum_zero] }
-#align continuous_linear_map.has_fpower_series_on_ball ContinuousLinearMap.hasFpowerSeriesOnBall
+#align continuous_linear_map.has_fpower_series_on_ball ContinuousLinearMap.hasFPowerSeriesOnBall
 
-protected theorem hasFpowerSeriesAt (f : E β†’L[π•œ] F) (x : E) :
-    HasFpowerSeriesAt f (f.fpowerSeries x) x :=
-  ⟨∞, f.HasFpowerSeriesOnBall x⟩
-#align continuous_linear_map.has_fpower_series_at ContinuousLinearMap.hasFpowerSeriesAt
+protected theorem hasFPowerSeriesAt (f : E β†’L[π•œ] F) (x : E) :
+    HasFPowerSeriesAt f (f.fpowerSeries x) x :=
+  ⟨∞, f.HasFPowerSeriesOnBall x⟩
+#align continuous_linear_map.has_fpower_series_at ContinuousLinearMap.hasFPowerSeriesAt
 
 protected theorem analyticAt (f : E β†’L[π•œ] F) (x : E) : AnalyticAt π•œ f x :=
-  (f.HasFpowerSeriesAt x).AnalyticAt
+  (f.HasFPowerSeriesAt x).AnalyticAt
 #align continuous_linear_map.analytic_at ContinuousLinearMap.analyticAt
 
 /-- Reinterpret a bilinear map `f : E β†’L[π•œ] F β†’L[π•œ] G` as a multilinear map
@@ -97,8 +97,8 @@ theorem fpowerSeriesBilinear_radius (f : E β†’L[π•œ] F β†’L[π•œ] G) (x : E Γ—
   (f.fpowerSeriesBilinear x).radius_eq_top_of_forall_image_add_eq_zero 3 fun n => rfl
 #align continuous_linear_map.fpower_series_bilinear_radius ContinuousLinearMap.fpowerSeriesBilinear_radius
 
-protected theorem hasFpowerSeriesOnBallBilinear (f : E β†’L[π•œ] F β†’L[π•œ] G) (x : E Γ— F) :
-    HasFpowerSeriesOnBall (fun x : E Γ— F => f x.1 x.2) (f.fpowerSeriesBilinear x) x ∞ :=
+protected theorem hasFPowerSeriesOnBall_bilinear (f : E β†’L[π•œ] F β†’L[π•œ] G) (x : E Γ— F) :
+    HasFPowerSeriesOnBall (fun x : E Γ— F => f x.1 x.2) (f.fpowerSeriesBilinear x) x ∞ :=
   { r_le := by simp
     r_pos := ENNReal.coe_lt_top
     HasSum := fun y _ =>
@@ -107,16 +107,16 @@ protected theorem hasFpowerSeriesOnBallBilinear (f : E β†’L[π•œ] F β†’L[π•œ] G
         simp only [Finset.sum_range_succ, Finset.sum_range_one, Prod.fst_add, Prod.snd_add,
           f.map_add_add]
         dsimp; simp only [add_comm, sub_self, hasSum_zero] }
-#align continuous_linear_map.has_fpower_series_on_ball_bilinear ContinuousLinearMap.hasFpowerSeriesOnBallBilinear
+#align continuous_linear_map.has_fpower_series_on_ball_bilinear ContinuousLinearMap.hasFPowerSeriesOnBall_bilinear
 
-protected theorem hasFpowerSeriesAtBilinear (f : E β†’L[π•œ] F β†’L[π•œ] G) (x : E Γ— F) :
-    HasFpowerSeriesAt (fun x : E Γ— F => f x.1 x.2) (f.fpowerSeriesBilinear x) x :=
-  ⟨∞, f.hasFpowerSeriesOnBallBilinear x⟩
-#align continuous_linear_map.has_fpower_series_at_bilinear ContinuousLinearMap.hasFpowerSeriesAtBilinear
+protected theorem hasFPowerSeriesAt_bilinear (f : E β†’L[π•œ] F β†’L[π•œ] G) (x : E Γ— F) :
+    HasFPowerSeriesAt (fun x : E Γ— F => f x.1 x.2) (f.fpowerSeriesBilinear x) x :=
+  ⟨∞, f.hasFPowerSeriesOnBall_bilinear x⟩
+#align continuous_linear_map.has_fpower_series_at_bilinear ContinuousLinearMap.hasFPowerSeriesAt_bilinear
 
 protected theorem analyticAt_bilinear (f : E β†’L[π•œ] F β†’L[π•œ] G) (x : E Γ— F) :
     AnalyticAt π•œ (fun x : E Γ— F => f x.1 x.2) x :=
-  (f.hasFpowerSeriesAtBilinear x).AnalyticAt
+  (f.hasFPowerSeriesAt_bilinear x).AnalyticAt
 #align continuous_linear_map.analytic_at_bilinear ContinuousLinearMap.analyticAt_bilinear
 
 end ContinuousLinearMap
Diff
@@ -22,7 +22,7 @@ variable {π•œ : Type _} [NontriviallyNormedField π•œ] {E : Type _} [NormedAddC
   [NormedSpace π•œ E] {F : Type _} [NormedAddCommGroup F] [NormedSpace π•œ F] {G : Type _}
   [NormedAddCommGroup G] [NormedSpace π•œ G]
 
-open Topology Classical BigOperators NNReal ENNReal
+open scoped Topology Classical BigOperators NNReal ENNReal
 
 open Set Filter Asymptotics
 
Diff
@@ -30,12 +30,6 @@ noncomputable section
 
 namespace ContinuousLinearMap
 
-/- warning: continuous_linear_map.fpower_series -> ContinuousLinearMap.fpowerSeries is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : NontriviallyNormedField.{u1} π•œ] {E : Type.{u2}} [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u1, u2} π•œ E (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] {F : Type.{u3}} [_inst_4 : NormedAddCommGroup.{u3} F] [_inst_5 : NormedSpace.{u1, u3} π•œ F (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4)], (ContinuousLinearMap.{u1, u1, u2, u3} π•œ π•œ (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))) (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))))) E (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) F (UniformSpace.toTopologicalSpace.{u3} F (PseudoMetricSpace.toUniformSpace.{u3} F (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} F (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4)))) (AddCommGroup.toAddCommMonoid.{u3} F (NormedAddCommGroup.toAddCommGroup.{u3} F _inst_4)) (NormedSpace.toModule.{u1, u2} π•œ E (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3) (NormedSpace.toModule.{u1, u3} π•œ F (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4) _inst_5)) -> E -> (FormalMultilinearSeries.{u1, u2, u3} π•œ E F (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1)))) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3) (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))) (ContinuousLinearMap.FpowerSeries._proof_1.{u2} E _inst_2) (ContinuousLinearMap.FpowerSeries._proof_2.{u1, u2} π•œ _inst_1 E _inst_2 _inst_3) (NormedAddCommGroup.toAddCommGroup.{u3} F _inst_4) (NormedSpace.toModule.{u1, u3} π•œ F (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4) _inst_5) (UniformSpace.toTopologicalSpace.{u3} F (PseudoMetricSpace.toUniformSpace.{u3} F (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} F (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4)))) (ContinuousLinearMap.FpowerSeries._proof_3.{u3} F _inst_4) (ContinuousLinearMap.FpowerSeries._proof_4.{u1, u3} π•œ _inst_1 F _inst_4 _inst_5))
-but is expected to have type
-  PUnit.{max (max (succ (succ u1)) (succ (succ u2))) (succ (succ u3))}
-Case conversion may be inaccurate. Consider using '#align continuous_linear_map.fpower_series ContinuousLinearMap.fpowerSeriesβ‚“'. -/
 /-- Formal power series of a continuous linear map `f : E β†’L[π•œ] F` at `x : E`:
 `f y = f x + f (y - x)`. -/
 @[simp]
@@ -88,9 +82,6 @@ theorem uncurryBilinear_apply (f : E β†’L[π•œ] F β†’L[π•œ] G) (m : Fin 2 β†’ E
   rfl
 #align continuous_linear_map.uncurry_bilinear_apply ContinuousLinearMap.uncurryBilinear_apply
 
-/- warning: continuous_linear_map.fpower_series_bilinear -> ContinuousLinearMap.fpowerSeriesBilinear is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align continuous_linear_map.fpower_series_bilinear ContinuousLinearMap.fpowerSeriesBilinearβ‚“'. -/
 /-- Formal multilinear series expansion of a bilinear function `f : E β†’L[π•œ] F β†’L[π•œ] G`. -/
 @[simp]
 def fpowerSeriesBilinear (f : E β†’L[π•œ] F β†’L[π•œ] G) (x : E Γ— F) : FormalMultilinearSeries π•œ (E Γ— F) G
Diff
@@ -89,10 +89,7 @@ theorem uncurryBilinear_apply (f : E β†’L[π•œ] F β†’L[π•œ] G) (m : Fin 2 β†’ E
 #align continuous_linear_map.uncurry_bilinear_apply ContinuousLinearMap.uncurryBilinear_apply
 
 /- warning: continuous_linear_map.fpower_series_bilinear -> ContinuousLinearMap.fpowerSeriesBilinear is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : NontriviallyNormedField.{u1} π•œ] {E : Type.{u2}} [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u1, u2} π•œ E (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] {F : Type.{u3}} [_inst_4 : NormedAddCommGroup.{u3} F] [_inst_5 : NormedSpace.{u1, u3} π•œ F (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4)] {G : Type.{u4}} [_inst_6 : NormedAddCommGroup.{u4} G] [_inst_7 : NormedSpace.{u1, u4} π•œ G (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u4} G _inst_6)], (ContinuousLinearMap.{u1, u1, u2, max u3 u4} π•œ π•œ (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))) (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))))) E (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (ContinuousLinearMap.{u1, u1, u3, u4} π•œ π•œ (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))) (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))))) F (UniformSpace.toTopologicalSpace.{u3} F (PseudoMetricSpace.toUniformSpace.{u3} F (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} F (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4)))) (AddCommGroup.toAddCommMonoid.{u3} F (NormedAddCommGroup.toAddCommGroup.{u3} F _inst_4)) G (UniformSpace.toTopologicalSpace.{u4} G (PseudoMetricSpace.toUniformSpace.{u4} G (SeminormedAddCommGroup.toPseudoMetricSpace.{u4} G (NormedAddCommGroup.toSeminormedAddCommGroup.{u4} G _inst_6)))) (AddCommGroup.toAddCommMonoid.{u4} G (NormedAddCommGroup.toAddCommGroup.{u4} G _inst_6)) (NormedSpace.toModule.{u1, u3} π•œ F (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4) _inst_5) (NormedSpace.toModule.{u1, u4} π•œ G (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u4} G _inst_6) _inst_7)) (ContinuousLinearMap.topologicalSpace.{u1, u1, u3, u4} π•œ π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))))) F G (NormedAddCommGroup.toAddCommGroup.{u3} F _inst_4) (NormedSpace.toModule.{u1, u3} π•œ F (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4) _inst_5) (NormedAddCommGroup.toAddCommGroup.{u4} G _inst_6) (NormedSpace.toModule.{u1, u4} π•œ G (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u4} G _inst_6) _inst_7) (UniformSpace.toTopologicalSpace.{u3} F (PseudoMetricSpace.toUniformSpace.{u3} F (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} F (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4)))) (UniformSpace.toTopologicalSpace.{u4} G (PseudoMetricSpace.toUniformSpace.{u4} G (SeminormedAddCommGroup.toPseudoMetricSpace.{u4} G (NormedAddCommGroup.toSeminormedAddCommGroup.{u4} G _inst_6)))) (ContinuousLinearMap.FpowerSeriesBilinear._proof_1.{u4} G _inst_6)) (ContinuousLinearMap.addCommMonoid.{u1, u1, u3, u4} π•œ π•œ (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))) (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))))) F (UniformSpace.toTopologicalSpace.{u3} F (PseudoMetricSpace.toUniformSpace.{u3} F (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} F (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4)))) (AddCommGroup.toAddCommMonoid.{u3} F (NormedAddCommGroup.toAddCommGroup.{u3} F _inst_4)) G (UniformSpace.toTopologicalSpace.{u4} G (PseudoMetricSpace.toUniformSpace.{u4} G (SeminormedAddCommGroup.toPseudoMetricSpace.{u4} G (NormedAddCommGroup.toSeminormedAddCommGroup.{u4} G _inst_6)))) (AddCommGroup.toAddCommMonoid.{u4} G (NormedAddCommGroup.toAddCommGroup.{u4} G _inst_6)) (NormedSpace.toModule.{u1, u3} π•œ F (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4) _inst_5) (NormedSpace.toModule.{u1, u4} π•œ G (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u4} G _inst_6) _inst_7) (ContinuousLinearMap.FpowerSeriesBilinear._proof_2.{u4} G _inst_6)) (NormedSpace.toModule.{u1, u2} π•œ E (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3) (ContinuousLinearMap.module.{u1, u1, u1, u3, u4} π•œ π•œ π•œ (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))) (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))) (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))) F (UniformSpace.toTopologicalSpace.{u3} F (PseudoMetricSpace.toUniformSpace.{u3} F (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} F (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4)))) (AddCommGroup.toAddCommMonoid.{u3} F (NormedAddCommGroup.toAddCommGroup.{u3} F _inst_4)) (NormedSpace.toModule.{u1, u3} π•œ F (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4) _inst_5) G (UniformSpace.toTopologicalSpace.{u4} G (PseudoMetricSpace.toUniformSpace.{u4} G (SeminormedAddCommGroup.toPseudoMetricSpace.{u4} G (NormedAddCommGroup.toSeminormedAddCommGroup.{u4} G _inst_6)))) (AddCommGroup.toAddCommMonoid.{u4} G (NormedAddCommGroup.toAddCommGroup.{u4} G _inst_6)) (NormedSpace.toModule.{u1, u4} π•œ G (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u4} G _inst_6) _inst_7) (NormedSpace.toModule.{u1, u4} π•œ G (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u4} G _inst_6) _inst_7) (ContinuousLinearMap.FpowerSeriesBilinear._proof_3.{u1, u4} π•œ _inst_1 G _inst_6 _inst_7) (ContinuousLinearMap.FpowerSeriesBilinear._proof_4.{u1, u4} π•œ _inst_1 G _inst_6 _inst_7) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))))) (ContinuousLinearMap.FpowerSeriesBilinear._proof_5.{u4} G _inst_6))) -> (Prod.{u2, u3} E F) -> (FormalMultilinearSeries.{u1, max u2 u3, u4} π•œ (Prod.{u2, u3} E F) G (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1)))) (Prod.addCommGroup.{u2, u3} E F (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedAddCommGroup.toAddCommGroup.{u3} F _inst_4)) (Prod.module.{u1, u2, u3} π•œ E F (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (AddCommGroup.toAddCommMonoid.{u3} F (NormedAddCommGroup.toAddCommGroup.{u3} F _inst_4)) (NormedSpace.toModule.{u1, u2} π•œ E (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3) (NormedSpace.toModule.{u1, u3} π•œ F (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4) _inst_5)) (Prod.topologicalSpace.{u2, u3} E F (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))) (UniformSpace.toTopologicalSpace.{u3} F (PseudoMetricSpace.toUniformSpace.{u3} F (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} F (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4))))) (ContinuousLinearMap.FpowerSeriesBilinear._proof_6.{u2, u3} E _inst_2 F _inst_4) (ContinuousLinearMap.FpowerSeriesBilinear._proof_7.{u1, u2, u3} π•œ _inst_1 E _inst_2 _inst_3 F _inst_4 _inst_5) (NormedAddCommGroup.toAddCommGroup.{u4} G _inst_6) (NormedSpace.toModule.{u1, u4} π•œ G (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u4} G _inst_6) _inst_7) (UniformSpace.toTopologicalSpace.{u4} G (PseudoMetricSpace.toUniformSpace.{u4} G (SeminormedAddCommGroup.toPseudoMetricSpace.{u4} G (NormedAddCommGroup.toSeminormedAddCommGroup.{u4} G _inst_6)))) (ContinuousLinearMap.FpowerSeriesBilinear._proof_8.{u4} G _inst_6) (ContinuousLinearMap.FpowerSeriesBilinear._proof_9.{u1, u4} π•œ _inst_1 G _inst_6 _inst_7))
-but is expected to have type
-  PUnit.{max (max (max (succ (succ u1)) (succ (succ u2))) (succ (succ u3))) (succ (succ u4))}
+<too large>
 Case conversion may be inaccurate. Consider using '#align continuous_linear_map.fpower_series_bilinear ContinuousLinearMap.fpowerSeriesBilinearβ‚“'. -/
 /-- Formal multilinear series expansion of a bilinear function `f : E β†’L[π•œ] F β†’L[π•œ] G`. -/
 @[simp]
Diff
@@ -30,6 +30,12 @@ noncomputable section
 
 namespace ContinuousLinearMap
 
+/- warning: continuous_linear_map.fpower_series -> ContinuousLinearMap.fpowerSeries is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} [_inst_1 : NontriviallyNormedField.{u1} π•œ] {E : Type.{u2}} [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u1, u2} π•œ E (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] {F : Type.{u3}} [_inst_4 : NormedAddCommGroup.{u3} F] [_inst_5 : NormedSpace.{u1, u3} π•œ F (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4)], (ContinuousLinearMap.{u1, u1, u2, u3} π•œ π•œ (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))) (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))))) E (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) F (UniformSpace.toTopologicalSpace.{u3} F (PseudoMetricSpace.toUniformSpace.{u3} F (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} F (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4)))) (AddCommGroup.toAddCommMonoid.{u3} F (NormedAddCommGroup.toAddCommGroup.{u3} F _inst_4)) (NormedSpace.toModule.{u1, u2} π•œ E (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3) (NormedSpace.toModule.{u1, u3} π•œ F (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4) _inst_5)) -> E -> (FormalMultilinearSeries.{u1, u2, u3} π•œ E F (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1)))) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3) (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))) (ContinuousLinearMap.FpowerSeries._proof_1.{u2} E _inst_2) (ContinuousLinearMap.FpowerSeries._proof_2.{u1, u2} π•œ _inst_1 E _inst_2 _inst_3) (NormedAddCommGroup.toAddCommGroup.{u3} F _inst_4) (NormedSpace.toModule.{u1, u3} π•œ F (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4) _inst_5) (UniformSpace.toTopologicalSpace.{u3} F (PseudoMetricSpace.toUniformSpace.{u3} F (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} F (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4)))) (ContinuousLinearMap.FpowerSeries._proof_3.{u3} F _inst_4) (ContinuousLinearMap.FpowerSeries._proof_4.{u1, u3} π•œ _inst_1 F _inst_4 _inst_5))
+but is expected to have type
+  PUnit.{max (max (succ (succ u1)) (succ (succ u2))) (succ (succ u3))}
+Case conversion may be inaccurate. Consider using '#align continuous_linear_map.fpower_series ContinuousLinearMap.fpowerSeriesβ‚“'. -/
 /-- Formal power series of a continuous linear map `f : E β†’L[π•œ] F` at `x : E`:
 `f y = f x + f (y - x)`. -/
 @[simp]
@@ -82,6 +88,12 @@ theorem uncurryBilinear_apply (f : E β†’L[π•œ] F β†’L[π•œ] G) (m : Fin 2 β†’ E
   rfl
 #align continuous_linear_map.uncurry_bilinear_apply ContinuousLinearMap.uncurryBilinear_apply
 
+/- warning: continuous_linear_map.fpower_series_bilinear -> ContinuousLinearMap.fpowerSeriesBilinear is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} [_inst_1 : NontriviallyNormedField.{u1} π•œ] {E : Type.{u2}} [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u1, u2} π•œ E (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] {F : Type.{u3}} [_inst_4 : NormedAddCommGroup.{u3} F] [_inst_5 : NormedSpace.{u1, u3} π•œ F (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4)] {G : Type.{u4}} [_inst_6 : NormedAddCommGroup.{u4} G] [_inst_7 : NormedSpace.{u1, u4} π•œ G (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u4} G _inst_6)], (ContinuousLinearMap.{u1, u1, u2, max u3 u4} π•œ π•œ (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))) (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))))) E (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (ContinuousLinearMap.{u1, u1, u3, u4} π•œ π•œ (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))) (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))))) F (UniformSpace.toTopologicalSpace.{u3} F (PseudoMetricSpace.toUniformSpace.{u3} F (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} F (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4)))) (AddCommGroup.toAddCommMonoid.{u3} F (NormedAddCommGroup.toAddCommGroup.{u3} F _inst_4)) G (UniformSpace.toTopologicalSpace.{u4} G (PseudoMetricSpace.toUniformSpace.{u4} G (SeminormedAddCommGroup.toPseudoMetricSpace.{u4} G (NormedAddCommGroup.toSeminormedAddCommGroup.{u4} G _inst_6)))) (AddCommGroup.toAddCommMonoid.{u4} G (NormedAddCommGroup.toAddCommGroup.{u4} G _inst_6)) (NormedSpace.toModule.{u1, u3} π•œ F (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4) _inst_5) (NormedSpace.toModule.{u1, u4} π•œ G (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u4} G _inst_6) _inst_7)) (ContinuousLinearMap.topologicalSpace.{u1, u1, u3, u4} π•œ π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))))) F G (NormedAddCommGroup.toAddCommGroup.{u3} F _inst_4) (NormedSpace.toModule.{u1, u3} π•œ F (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4) _inst_5) (NormedAddCommGroup.toAddCommGroup.{u4} G _inst_6) (NormedSpace.toModule.{u1, u4} π•œ G (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u4} G _inst_6) _inst_7) (UniformSpace.toTopologicalSpace.{u3} F (PseudoMetricSpace.toUniformSpace.{u3} F (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} F (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4)))) (UniformSpace.toTopologicalSpace.{u4} G (PseudoMetricSpace.toUniformSpace.{u4} G (SeminormedAddCommGroup.toPseudoMetricSpace.{u4} G (NormedAddCommGroup.toSeminormedAddCommGroup.{u4} G _inst_6)))) (ContinuousLinearMap.FpowerSeriesBilinear._proof_1.{u4} G _inst_6)) (ContinuousLinearMap.addCommMonoid.{u1, u1, u3, u4} π•œ π•œ (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))) (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))))) F (UniformSpace.toTopologicalSpace.{u3} F (PseudoMetricSpace.toUniformSpace.{u3} F (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} F (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4)))) (AddCommGroup.toAddCommMonoid.{u3} F (NormedAddCommGroup.toAddCommGroup.{u3} F _inst_4)) G (UniformSpace.toTopologicalSpace.{u4} G (PseudoMetricSpace.toUniformSpace.{u4} G (SeminormedAddCommGroup.toPseudoMetricSpace.{u4} G (NormedAddCommGroup.toSeminormedAddCommGroup.{u4} G _inst_6)))) (AddCommGroup.toAddCommMonoid.{u4} G (NormedAddCommGroup.toAddCommGroup.{u4} G _inst_6)) (NormedSpace.toModule.{u1, u3} π•œ F (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4) _inst_5) (NormedSpace.toModule.{u1, u4} π•œ G (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u4} G _inst_6) _inst_7) (ContinuousLinearMap.FpowerSeriesBilinear._proof_2.{u4} G _inst_6)) (NormedSpace.toModule.{u1, u2} π•œ E (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3) (ContinuousLinearMap.module.{u1, u1, u1, u3, u4} π•œ π•œ π•œ (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))) (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))) (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))) F (UniformSpace.toTopologicalSpace.{u3} F (PseudoMetricSpace.toUniformSpace.{u3} F (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} F (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4)))) (AddCommGroup.toAddCommMonoid.{u3} F (NormedAddCommGroup.toAddCommGroup.{u3} F _inst_4)) (NormedSpace.toModule.{u1, u3} π•œ F (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4) _inst_5) G (UniformSpace.toTopologicalSpace.{u4} G (PseudoMetricSpace.toUniformSpace.{u4} G (SeminormedAddCommGroup.toPseudoMetricSpace.{u4} G (NormedAddCommGroup.toSeminormedAddCommGroup.{u4} G _inst_6)))) (AddCommGroup.toAddCommMonoid.{u4} G (NormedAddCommGroup.toAddCommGroup.{u4} G _inst_6)) (NormedSpace.toModule.{u1, u4} π•œ G (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u4} G _inst_6) _inst_7) (NormedSpace.toModule.{u1, u4} π•œ G (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u4} G _inst_6) _inst_7) (ContinuousLinearMap.FpowerSeriesBilinear._proof_3.{u1, u4} π•œ _inst_1 G _inst_6 _inst_7) (ContinuousLinearMap.FpowerSeriesBilinear._proof_4.{u1, u4} π•œ _inst_1 G _inst_6 _inst_7) (RingHom.id.{u1} π•œ (Semiring.toNonAssocSemiring.{u1} π•œ (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))))) (ContinuousLinearMap.FpowerSeriesBilinear._proof_5.{u4} G _inst_6))) -> (Prod.{u2, u3} E F) -> (FormalMultilinearSeries.{u1, max u2 u3, u4} π•œ (Prod.{u2, u3} E F) G (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1)))) (Prod.addCommGroup.{u2, u3} E F (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedAddCommGroup.toAddCommGroup.{u3} F _inst_4)) (Prod.module.{u1, u2, u3} π•œ E F (Ring.toSemiring.{u1} π•œ (NormedRing.toRing.{u1} π•œ (NormedCommRing.toNormedRing.{u1} π•œ (NormedField.toNormedCommRing.{u1} π•œ (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (AddCommGroup.toAddCommMonoid.{u3} F (NormedAddCommGroup.toAddCommGroup.{u3} F _inst_4)) (NormedSpace.toModule.{u1, u2} π•œ E (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3) (NormedSpace.toModule.{u1, u3} π•œ F (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4) _inst_5)) (Prod.topologicalSpace.{u2, u3} E F (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))) (UniformSpace.toTopologicalSpace.{u3} F (PseudoMetricSpace.toUniformSpace.{u3} F (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} F (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_4))))) (ContinuousLinearMap.FpowerSeriesBilinear._proof_6.{u2, u3} E _inst_2 F _inst_4) (ContinuousLinearMap.FpowerSeriesBilinear._proof_7.{u1, u2, u3} π•œ _inst_1 E _inst_2 _inst_3 F _inst_4 _inst_5) (NormedAddCommGroup.toAddCommGroup.{u4} G _inst_6) (NormedSpace.toModule.{u1, u4} π•œ G (NontriviallyNormedField.toNormedField.{u1} π•œ _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u4} G _inst_6) _inst_7) (UniformSpace.toTopologicalSpace.{u4} G (PseudoMetricSpace.toUniformSpace.{u4} G (SeminormedAddCommGroup.toPseudoMetricSpace.{u4} G (NormedAddCommGroup.toSeminormedAddCommGroup.{u4} G _inst_6)))) (ContinuousLinearMap.FpowerSeriesBilinear._proof_8.{u4} G _inst_6) (ContinuousLinearMap.FpowerSeriesBilinear._proof_9.{u1, u4} π•œ _inst_1 G _inst_6 _inst_7))
+but is expected to have type
+  PUnit.{max (max (max (succ (succ u1)) (succ (succ u2))) (succ (succ u3))) (succ (succ u4))}
+Case conversion may be inaccurate. Consider using '#align continuous_linear_map.fpower_series_bilinear ContinuousLinearMap.fpowerSeriesBilinearβ‚“'. -/
 /-- Formal multilinear series expansion of a bilinear function `f : E β†’L[π•œ] F β†’L[π•œ] G`. -/
 @[simp]
 def fpowerSeriesBilinear (f : E β†’L[π•œ] F β†’L[π•œ] G) (x : E Γ— F) : FormalMultilinearSeries π•œ (E Γ— F) G
Diff
@@ -22,7 +22,7 @@ variable {π•œ : Type _} [NontriviallyNormedField π•œ] {E : Type _} [NormedAddC
   [NormedSpace π•œ E] {F : Type _} [NormedAddCommGroup F] [NormedSpace π•œ F] {G : Type _}
   [NormedAddCommGroup G] [NormedSpace π•œ G]
 
-open Topology Classical BigOperators NNReal Ennreal
+open Topology Classical BigOperators NNReal ENNReal
 
 open Set Filter Asymptotics
 
@@ -52,7 +52,7 @@ theorem fpowerSeries_radius (f : E β†’L[π•œ] F) (x : E) : (f.fpowerSeries x).ra
 protected theorem hasFpowerSeriesOnBall (f : E β†’L[π•œ] F) (x : E) :
     HasFpowerSeriesOnBall f (f.fpowerSeries x) x ∞ :=
   { r_le := by simp
-    r_pos := Ennreal.coe_lt_top
+    r_pos := ENNReal.coe_lt_top
     HasSum := fun y _ =>
       (hasSum_nat_add_iff' 2).1 <| by simp [Finset.sum_range_succ, ← sub_sub, hasSum_zero] }
 #align continuous_linear_map.has_fpower_series_on_ball ContinuousLinearMap.hasFpowerSeriesOnBall
@@ -100,7 +100,7 @@ theorem fpowerSeriesBilinear_radius (f : E β†’L[π•œ] F β†’L[π•œ] G) (x : E Γ—
 protected theorem hasFpowerSeriesOnBallBilinear (f : E β†’L[π•œ] F β†’L[π•œ] G) (x : E Γ— F) :
     HasFpowerSeriesOnBall (fun x : E Γ— F => f x.1 x.2) (f.fpowerSeriesBilinear x) x ∞ :=
   { r_le := by simp
-    r_pos := Ennreal.coe_lt_top
+    r_pos := ENNReal.coe_lt_top
     HasSum := fun y _ =>
       (hasSum_nat_add_iff' 3).1 <|
         by

Changes in mathlib4

mathlib3
mathlib4
chore: reduce imports (#9830)

This uses the improved shake script from #9772 to reduce imports across mathlib. The corresponding noshake.json file has been added to #9772.

Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -3,7 +3,7 @@ Copyright (c) 2021 Yury G. Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury G. Kudryashov
 -/
-import Mathlib.Analysis.Analytic.Composition
+import Mathlib.Analysis.Analytic.Basic
 
 #align_import analysis.analytic.linear from "leanprover-community/mathlib"@"f2ce6086713c78a7f880485f7917ea547a215982"
 
feat(Analysis/Analytic): A few lemmas that simple things are analytic (#7677)

We record various simple lemmas that things are analyticAt or analyticOn. There's no hard work here, just corollaries of other results:

  1. id, fst, snd
  2. Power series terms, in the origin (we already know they have power series, this is just the .analyticAt_changeOrigin corollary
  3. Finite sums
  4. Pairs of analytic functions: x ↦ (f x, g x)

We also add a few lemmas for dealing with curried analytic functions. Starting with AnalyticOn π•œ (uncurry h) s,

  1. AnalyticOn.curry_comp composes it with two input analytic functions
  2. AnalyticOn.along_fst/snd show analyticity along each coordinate

Co-authored-by: Mario Carneiro <di.gama@gmail.com> Co-authored-by: David Loeffler <d.loeffler.01@cantab.net>

Diff
@@ -131,64 +131,22 @@ variable (π•œ)
 lemma analyticAt_id (z : E) : AnalyticAt π•œ (id : E β†’ E) z :=
   (ContinuousLinearMap.id π•œ E).analyticAt z
 
-/-- Scalar multiplication is analytic (jointly in both variables). The statement is a little
-pedantic to allow towers of field extensions.
-
-TODO: can we replace `π•œ'` with a "normed module" in such a way that `analyticAt_mul` is a special
-case of this? -/
-lemma analyticAt_smul
-    {𝕝 : Type*} [NormedField 𝕝] [NormedAlgebra π•œ 𝕝] [NormedSpace 𝕝 E] [IsScalarTower π•œ 𝕝 E]
-    (z : 𝕝 Γ— E) : AnalyticAt π•œ (fun x : 𝕝 Γ— E ↦ x.1 β€’ x.2) z :=
-  (ContinuousLinearMap.lsmul π•œ 𝕝).analyticAt_bilinear z
-
-/-- Multiplication in a normed algebra over `π•œ` is -/
-lemma analyticAt_mul {A : Type*} [NormedRing A] [NormedAlgebra π•œ A] (z : A Γ— A) :
-    AnalyticAt π•œ (fun x : A Γ— A ↦ x.1 * x.2) z :=
-  (ContinuousLinearMap.mul π•œ A).analyticAt_bilinear z
-
-namespace AnalyticAt
-variable {π•œ}
-
-/-- Scalar multiplication of one analytic function by another. -/
-lemma smul {𝕝 : Type*} [NontriviallyNormedField 𝕝] [NormedSpace 𝕝 F] [NormedAlgebra π•œ 𝕝]
-    [IsScalarTower π•œ 𝕝 F] {f : E β†’ 𝕝} {g : E β†’ F} {z : E}
-    (hf : AnalyticAt π•œ f z) (hg : AnalyticAt π•œ g z) :
-    AnalyticAt π•œ (f β€’ g) z :=
-  @AnalyticAt.comp π•œ E (𝕝 Γ— F) F _ _ _ _ _ _ _
-    (fun x ↦ x.1 β€’ x.2) (fun e ↦ (f e, g e)) z (analyticAt_smul _ _) (hf.prod hg)
-
-/-- Multiplication of analytic functions (valued in a normd `π•œ`-algebra) is analytic. -/
-lemma mul {A : Type*} [NormedRing A] [NormedAlgebra π•œ A]
-    {f g : E β†’ A} {z : E}
-    (hf : AnalyticAt π•œ f z) (hg : AnalyticAt π•œ g z) : AnalyticAt π•œ (f * g) z :=
-  @AnalyticAt.comp π•œ E (A Γ— A) A _ _ _ _ _ _ _
-    (fun x ↦ x.1 * x.2) (fun e ↦ (f e, g e)) z (analyticAt_mul _ (f z, g z)) (hf.prod hg)
-
-/-- Powers of analytic functions (into a normed `π•œ`-algebra) are analytic. -/
-lemma pow {A : Type*} [NormedRing A] [NormedAlgebra π•œ A]
-    {f : E β†’ A} {z : E} (hf : AnalyticAt π•œ f z) (n : β„•) :
-    AnalyticAt π•œ (f ^ n) z := by
-  induction' n with m hm
-  Β· rw [pow_zero]
-    exact (analyticAt_const : AnalyticAt π•œ (fun _ ↦ (1 : A)) z)
-  Β· exact pow_succ f m β–Έ hf.mul hm
-
-end AnalyticAt
-
-/-- If `𝕝` is a normed field extension of `π•œ`, then the inverse map `𝕝 β†’ 𝕝` is `π•œ`-analytic
-away from 0. -/
-lemma analyticAt_inv {𝕝 : Type*} [NontriviallyNormedField 𝕝] [NormedAlgebra π•œ 𝕝]
-    {z : 𝕝} (hz : z β‰  0) : AnalyticAt π•œ Inv.inv z := by
-  let f1 : 𝕝 β†’ 𝕝 := fun a ↦ 1 / z * a
-  let f2 : 𝕝 β†’ 𝕝 := fun b ↦ (1 - b)⁻¹
-  let f3 : 𝕝 β†’ 𝕝 := fun c ↦ 1 - c / z
-  have feq : f1 ∘ f2 ∘ f3 = Inv.inv
-  Β· ext1 x
-    dsimp only [Function.comp_apply]
-    field_simp
-  have f3val : f3 z = 0 := by simp only [div_self hz, sub_self]
-  have f3an : AnalyticAt π•œ f3 z
-  Β· apply analyticAt_const.sub
-    simpa only [div_eq_inv_mul] using analyticAt_const.mul (analyticAt_id π•œ z)
-  exact feq β–Έ (analyticAt_const.mul (analyticAt_id _ _)).comp
-    ((f3val.symm β–Έ analyticAt_inv_one_sub 𝕝).comp f3an)
+/-- `id` is entire -/
+theorem analyticOn_id {s : Set E} : AnalyticOn π•œ (fun x : E ↦ x) s :=
+  fun _ _ ↦ analyticAt_id _ _
+
+/-- `fst` is analytic -/
+theorem analyticAt_fst {p : E Γ— F} : AnalyticAt π•œ (fun p : E Γ— F ↦ p.fst) p :=
+  (ContinuousLinearMap.fst π•œ E F).analyticAt p
+
+/-- `snd` is analytic -/
+theorem analyticAt_snd {p : E Γ— F} : AnalyticAt π•œ (fun p : E Γ— F ↦ p.snd) p :=
+  (ContinuousLinearMap.snd π•œ E F).analyticAt p
+
+/-- `fst` is entire -/
+theorem analyticOn_fst {s : Set (E Γ— F)} : AnalyticOn π•œ (fun p : E Γ— F ↦ p.fst) s :=
+  fun _ _ ↦ analyticAt_fst _
+
+/-- `snd` is entire -/
+theorem analyticOn_snd {s : Set (E Γ— F)} : AnalyticOn π•œ (fun p : E Γ— F ↦ p.snd) s :=
+  fun _ _ ↦ analyticAt_snd _
feat(Analysis/Analytic): some more API for analytic functions (#7552)

This PR adds some basic results about analytic functions: products of analytic functions are analytic, and the inverse map on a normed field is analytic away from 0.

Diff
@@ -3,7 +3,7 @@ Copyright (c) 2021 Yury G. Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury G. Kudryashov
 -/
-import Mathlib.Analysis.Analytic.Basic
+import Mathlib.Analysis.Analytic.Composition
 
 #align_import analysis.analytic.linear from "leanprover-community/mathlib"@"f2ce6086713c78a7f880485f7917ea547a215982"
 
@@ -11,7 +11,7 @@ import Mathlib.Analysis.Analytic.Basic
 # Linear functions are analytic
 
 In this file we prove that a `ContinuousLinearMap` defines an analytic function with
-the formal power series `f x = f a + f (x - a)`.
+the formal power series `f x = f a + f (x - a)`. We also prove similar results for multilinear maps.
 -/
 
 
@@ -27,30 +27,6 @@ noncomputable section
 
 namespace ContinuousLinearMap
 
-/-- Formal power series of a continuous linear map `f : E β†’L[π•œ] F` at `x : E`:
-`f y = f x + f (y - x)`. -/
-def fpowerSeries (f : E β†’L[π•œ] F) (x : E) : FormalMultilinearSeries π•œ E F
-  | 0 => ContinuousMultilinearMap.curry0 π•œ _ (f x)
-  | 1 => (continuousMultilinearCurryFin1 π•œ E F).symm f
-  | _ => 0
-#align continuous_linear_map.fpower_series ContinuousLinearMap.fpowerSeries
-
-theorem fpower_series_apply_zero (f : E β†’L[π•œ] F) (x : E) :
-    f.fpowerSeries x 0 = ContinuousMultilinearMap.curry0 π•œ _ (f x) :=
-  rfl
-
-theorem fpower_series_apply_one (f : E β†’L[π•œ] F) (x : E) :
-    f.fpowerSeries x 1 = (continuousMultilinearCurryFin1 π•œ E F).symm f :=
-  rfl
-
-theorem fpowerSeries_apply_add_two (f : E β†’L[π•œ] F) (x : E) (n : β„•) : f.fpowerSeries x (n + 2) = 0 :=
-  rfl
-#align continuous_linear_map.fpower_series_apply_add_two ContinuousLinearMap.fpowerSeries_apply_add_two
-
-attribute
-  [eqns fpower_series_apply_zero fpower_series_apply_one fpowerSeries_apply_add_two] fpowerSeries
-attribute [simp] fpowerSeries
-
 @[simp]
 theorem fpowerSeries_radius (f : E β†’L[π•œ] F) (x : E) : (f.fpowerSeries x).radius = ∞ :=
   (f.fpowerSeries x).radius_eq_top_of_forall_image_add_eq_zero 2 fun _ => rfl
@@ -149,3 +125,70 @@ protected theorem analyticAt_bilinear (f : E β†’L[π•œ] F β†’L[π•œ] G) (x : E 
 #align continuous_linear_map.analytic_at_bilinear ContinuousLinearMap.analyticAt_bilinear
 
 end ContinuousLinearMap
+
+variable (π•œ)
+
+lemma analyticAt_id (z : E) : AnalyticAt π•œ (id : E β†’ E) z :=
+  (ContinuousLinearMap.id π•œ E).analyticAt z
+
+/-- Scalar multiplication is analytic (jointly in both variables). The statement is a little
+pedantic to allow towers of field extensions.
+
+TODO: can we replace `π•œ'` with a "normed module" in such a way that `analyticAt_mul` is a special
+case of this? -/
+lemma analyticAt_smul
+    {𝕝 : Type*} [NormedField 𝕝] [NormedAlgebra π•œ 𝕝] [NormedSpace 𝕝 E] [IsScalarTower π•œ 𝕝 E]
+    (z : 𝕝 Γ— E) : AnalyticAt π•œ (fun x : 𝕝 Γ— E ↦ x.1 β€’ x.2) z :=
+  (ContinuousLinearMap.lsmul π•œ 𝕝).analyticAt_bilinear z
+
+/-- Multiplication in a normed algebra over `π•œ` is -/
+lemma analyticAt_mul {A : Type*} [NormedRing A] [NormedAlgebra π•œ A] (z : A Γ— A) :
+    AnalyticAt π•œ (fun x : A Γ— A ↦ x.1 * x.2) z :=
+  (ContinuousLinearMap.mul π•œ A).analyticAt_bilinear z
+
+namespace AnalyticAt
+variable {π•œ}
+
+/-- Scalar multiplication of one analytic function by another. -/
+lemma smul {𝕝 : Type*} [NontriviallyNormedField 𝕝] [NormedSpace 𝕝 F] [NormedAlgebra π•œ 𝕝]
+    [IsScalarTower π•œ 𝕝 F] {f : E β†’ 𝕝} {g : E β†’ F} {z : E}
+    (hf : AnalyticAt π•œ f z) (hg : AnalyticAt π•œ g z) :
+    AnalyticAt π•œ (f β€’ g) z :=
+  @AnalyticAt.comp π•œ E (𝕝 Γ— F) F _ _ _ _ _ _ _
+    (fun x ↦ x.1 β€’ x.2) (fun e ↦ (f e, g e)) z (analyticAt_smul _ _) (hf.prod hg)
+
+/-- Multiplication of analytic functions (valued in a normd `π•œ`-algebra) is analytic. -/
+lemma mul {A : Type*} [NormedRing A] [NormedAlgebra π•œ A]
+    {f g : E β†’ A} {z : E}
+    (hf : AnalyticAt π•œ f z) (hg : AnalyticAt π•œ g z) : AnalyticAt π•œ (f * g) z :=
+  @AnalyticAt.comp π•œ E (A Γ— A) A _ _ _ _ _ _ _
+    (fun x ↦ x.1 * x.2) (fun e ↦ (f e, g e)) z (analyticAt_mul _ (f z, g z)) (hf.prod hg)
+
+/-- Powers of analytic functions (into a normed `π•œ`-algebra) are analytic. -/
+lemma pow {A : Type*} [NormedRing A] [NormedAlgebra π•œ A]
+    {f : E β†’ A} {z : E} (hf : AnalyticAt π•œ f z) (n : β„•) :
+    AnalyticAt π•œ (f ^ n) z := by
+  induction' n with m hm
+  Β· rw [pow_zero]
+    exact (analyticAt_const : AnalyticAt π•œ (fun _ ↦ (1 : A)) z)
+  Β· exact pow_succ f m β–Έ hf.mul hm
+
+end AnalyticAt
+
+/-- If `𝕝` is a normed field extension of `π•œ`, then the inverse map `𝕝 β†’ 𝕝` is `π•œ`-analytic
+away from 0. -/
+lemma analyticAt_inv {𝕝 : Type*} [NontriviallyNormedField 𝕝] [NormedAlgebra π•œ 𝕝]
+    {z : 𝕝} (hz : z β‰  0) : AnalyticAt π•œ Inv.inv z := by
+  let f1 : 𝕝 β†’ 𝕝 := fun a ↦ 1 / z * a
+  let f2 : 𝕝 β†’ 𝕝 := fun b ↦ (1 - b)⁻¹
+  let f3 : 𝕝 β†’ 𝕝 := fun c ↦ 1 - c / z
+  have feq : f1 ∘ f2 ∘ f3 = Inv.inv
+  Β· ext1 x
+    dsimp only [Function.comp_apply]
+    field_simp
+  have f3val : f3 z = 0 := by simp only [div_self hz, sub_self]
+  have f3an : AnalyticAt π•œ f3 z
+  Β· apply analyticAt_const.sub
+    simpa only [div_eq_inv_mul] using analyticAt_const.mul (analyticAt_id π•œ z)
+  exact feq β–Έ (analyticAt_const.mul (analyticAt_id _ _)).comp
+    ((f3val.symm β–Έ analyticAt_inv_one_sub 𝕝).comp f3an)
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
@@ -15,8 +15,8 @@ the formal power series `f x = f a + f (x - a)`.
 -/
 
 
-variable {π•œ : Type _} [NontriviallyNormedField π•œ] {E : Type _} [NormedAddCommGroup E]
-  [NormedSpace π•œ E] {F : Type _} [NormedAddCommGroup F] [NormedSpace π•œ F] {G : Type _}
+variable {π•œ : Type*} [NontriviallyNormedField π•œ] {E : Type*} [NormedAddCommGroup E]
+  [NormedSpace π•œ E] {F : Type*} [NormedAddCommGroup F] [NormedSpace π•œ F] {G : Type*}
   [NormedAddCommGroup G] [NormedSpace π•œ G]
 
 open scoped Topology Classical BigOperators NNReal ENNReal
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,14 +2,11 @@
 Copyright (c) 2021 Yury G. Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury G. Kudryashov
-
-! This file was ported from Lean 3 source module analysis.analytic.linear
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Analysis.Analytic.Basic
 
+#align_import analysis.analytic.linear from "leanprover-community/mathlib"@"f2ce6086713c78a7f880485f7917ea547a215982"
+
 /-!
 # Linear functions are analytic
 
chore: bump to nightly-2023-07-01 (#5409)

Open in Gitpod

Co-authored-by: Komyyy <pol_tta@outlook.jp> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -32,18 +32,28 @@ namespace ContinuousLinearMap
 
 /-- Formal power series of a continuous linear map `f : E β†’L[π•œ] F` at `x : E`:
 `f y = f x + f (y - x)`. -/
-@[simp]
 def fpowerSeries (f : E β†’L[π•œ] F) (x : E) : FormalMultilinearSeries π•œ E F
   | 0 => ContinuousMultilinearMap.curry0 π•œ _ (f x)
   | 1 => (continuousMultilinearCurryFin1 π•œ E F).symm f
   | _ => 0
 #align continuous_linear_map.fpower_series ContinuousLinearMap.fpowerSeries
 
-@[simp]
+theorem fpower_series_apply_zero (f : E β†’L[π•œ] F) (x : E) :
+    f.fpowerSeries x 0 = ContinuousMultilinearMap.curry0 π•œ _ (f x) :=
+  rfl
+
+theorem fpower_series_apply_one (f : E β†’L[π•œ] F) (x : E) :
+    f.fpowerSeries x 1 = (continuousMultilinearCurryFin1 π•œ E F).symm f :=
+  rfl
+
 theorem fpowerSeries_apply_add_two (f : E β†’L[π•œ] F) (x : E) (n : β„•) : f.fpowerSeries x (n + 2) = 0 :=
   rfl
 #align continuous_linear_map.fpower_series_apply_add_two ContinuousLinearMap.fpowerSeries_apply_add_two
 
+attribute
+  [eqns fpower_series_apply_zero fpower_series_apply_one fpowerSeries_apply_add_two] fpowerSeries
+attribute [simp] fpowerSeries
+
 @[simp]
 theorem fpowerSeries_radius (f : E β†’L[π•œ] F) (x : E) : (f.fpowerSeries x).radius = ∞ :=
   (f.fpowerSeries x).radius_eq_top_of_forall_image_add_eq_zero 2 fun _ => rfl
@@ -69,7 +79,7 @@ protected theorem analyticAt (f : E β†’L[π•œ] F) (x : E) : AnalyticAt π•œ f x
 /-- Reinterpret a bilinear map `f : E β†’L[π•œ] F β†’L[π•œ] G` as a multilinear map
 `(E Γ— F) [Γ—2]β†’L[π•œ] G`. This multilinear map is the second term in the formal
 multilinear series expansion of `uncurry f`. It is given by
-`f.uncurry_bilinear ![(x, y), (x', y')] = f x y'`. -/
+`f.uncurryBilinear ![(x, y), (x', y')] = f x y'`. -/
 def uncurryBilinear (f : E β†’L[π•œ] F β†’L[π•œ] G) : E Γ— F[Γ—2]β†’L[π•œ] G :=
   @ContinuousLinearMap.uncurryLeft π•œ 1 (fun _ => E Γ— F) G _ _ _ _ _ <|
     (↑(continuousMultilinearCurryFin1 π•œ (E Γ— F) G).symm : (E Γ— F β†’L[π•œ] G) β†’L[π•œ] _).comp <|
@@ -83,7 +93,6 @@ theorem uncurryBilinear_apply (f : E β†’L[π•œ] F β†’L[π•œ] G) (m : Fin 2 β†’ E
 #align continuous_linear_map.uncurry_bilinear_apply ContinuousLinearMap.uncurryBilinear_apply
 
 /-- Formal multilinear series expansion of a bilinear function `f : E β†’L[π•œ] F β†’L[π•œ] G`. -/
-@[simp]
 def fpowerSeriesBilinear (f : E β†’L[π•œ] F β†’L[π•œ] G) (x : E Γ— F) : FormalMultilinearSeries π•œ (E Γ— F) G
   | 0 => ContinuousMultilinearMap.curry0 π•œ _ (f x.1 x.2)
   | 1 => (continuousMultilinearCurryFin1 π•œ (E Γ— F) G).symm (f.derivβ‚‚ x)
@@ -91,6 +100,30 @@ def fpowerSeriesBilinear (f : E β†’L[π•œ] F β†’L[π•œ] G) (x : E Γ— F) : Formal
   | _ => 0
 #align continuous_linear_map.fpower_series_bilinear ContinuousLinearMap.fpowerSeriesBilinear
 
+theorem fpowerSeriesBilinear_apply_zero (f : E β†’L[π•œ] F β†’L[π•œ] G) (x : E Γ— F) :
+    fpowerSeriesBilinear f x 0 = ContinuousMultilinearMap.curry0 π•œ _ (f x.1 x.2) :=
+  rfl
+
+theorem fpowerSeriesBilinear_apply_one (f : E β†’L[π•œ] F β†’L[π•œ] G) (x : E Γ— F) :
+    fpowerSeriesBilinear f x 1 = (continuousMultilinearCurryFin1 π•œ (E Γ— F) G).symm (f.derivβ‚‚ x) :=
+  rfl
+
+theorem fpowerSeriesBilinear_apply_two (f : E β†’L[π•œ] F β†’L[π•œ] G) (x : E Γ— F) :
+    fpowerSeriesBilinear f x 2 = f.uncurryBilinear :=
+  rfl
+
+theorem fpowerSeriesBilinear_apply_add_three (f : E β†’L[π•œ] F β†’L[π•œ] G) (x : E Γ— F) (n) :
+    fpowerSeriesBilinear f x (n + 3) = 0 :=
+  rfl
+
+attribute
+  [eqns
+    fpowerSeriesBilinear_apply_zero
+    fpowerSeriesBilinear_apply_one
+    fpowerSeriesBilinear_apply_two
+    fpowerSeriesBilinear_apply_add_three] fpowerSeriesBilinear
+attribute [simp] fpowerSeriesBilinear
+
 @[simp]
 theorem fpowerSeriesBilinear_radius (f : E β†’L[π•œ] F β†’L[π•œ] G) (x : E Γ— F) :
     (f.fpowerSeriesBilinear x).radius = ∞ :=
feat: port Analysis.Analytic.Linear (#4566)

Co-authored-by: Johan Commelin <johan@commelin.net>

Dependencies 10 + 652

653 files ported (98.5%)
291872 lines ported (98.2%)
Show graph

The unported dependencies are

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