File: Mathlib/Analysis/Analytic/CPolynomial.lean

full_name: HasFiniteFPowerSeriesOnBall
code: /-- Given a function `f : E → F`, a formal multilinear series `p` and `n : ℕ`, we say that
`f` has `p` as a finite power series on the ball of radius `r > 0` around `x` if
`f (x + y) = ∑' pₘ yᵐ` for all `‖y‖ < r` and `pₙ = 0` for `n ≤ m`. -/
structure HasFiniteFPowerSeriesOnBall (f : E → F) (p : FormalMultilinearSeries 𝕜 E F) (x : E)
    (n : ℕ) (r : ℝ≥0∞) extends HasFPowerSeriesOnBall f p x r : Prop where
  finite : ∀ (m : ℕ), n ≤ m → p m = 0
goal: Prop

full_name: HasFiniteFPowerSeriesOnBall.finite
code: /-- Given a function `f : E → F`, a formal multilinear series `p` and `n : ℕ`, we say that
`f` has `p` as a finite power series on the ball of radius `r > 0` around `x` if
`f (x + y) = ∑' pₘ yᵐ` for all `‖y‖ < r` and `pₙ = 0` for `n ≤ m`. -/
structure HasFiniteFPowerSeriesOnBall (f : E → F) (p : FormalMultilinearSeries 𝕜 E F) (x : E)
    (n : ℕ) (r : ℝ≥0∞) extends HasFPowerSeriesOnBall f p x r : Prop where
  finite : ∀ (m : ℕ), n ≤ m → p m = 0
goal: n ≤ m → p m = 0

full_name: HasFiniteFPowerSeriesOnBall.mk'
code: theorem HasFiniteFPowerSeriesOnBall.mk' {f : E → F} {p : FormalMultilinearSeries 𝕜 E F} {x : E}
    {n : ℕ} {r : ℝ≥0∞} (finite : ∀ (m : ℕ), n ≤ m → p m = 0) (pos : 0 < r)
    (sum_eq : ∀ y ∈ EMetric.ball 0 r, (∑ i ∈ Finset.range n, p i fun _ ↦ y) = f (x + y)) :
    HasFiniteFPowerSeriesOnBall f p x n r 
goal: HasFiniteFPowerSeriesOnBall f p x n r

full_name: HasFiniteFPowerSeriesAt
code: /-- Given a function `f : E → F`, a formal multilinear series `p` and `n : ℕ`, we say that
`f` has `p` as a finite power series around `x` if `f (x + y) = ∑' pₙ yⁿ` for all `y` in a
neighborhood of `0`and `pₙ = 0` for `n ≤ m`. -/
def HasFiniteFPowerSeriesAt (f : E → F) (p : FormalMultilinearSeries 𝕜 E F) (x : E) (n : ℕ) 
goal: Prop

full_name: HasFiniteFPowerSeriesAt.toHasFPowerSeriesAt
code: theorem HasFiniteFPowerSeriesAt.toHasFPowerSeriesAt
    (hf : HasFiniteFPowerSeriesAt f p x n) : HasFPowerSeriesAt f p x 
goal: HasFPowerSeriesAt f p x

full_name: HasFiniteFPowerSeriesAt.finite
code: theorem HasFiniteFPowerSeriesAt.finite (hf : HasFiniteFPowerSeriesAt f p x n) :
    ∀ m : ℕ, n ≤ m → p m = 0 
goal: n ≤ m → p m = 0

full_name: CPolynomialAt
code: /-- Given a function `f : E → F`, we say that `f` is continuously polynomial (cpolynomial)
at `x` if it admits a finite power series expansion around `x`. -/
def CPolynomialAt (f : E → F) (x : E) 
goal: Prop

full_name: CPolynomialOn
code: /-- Given a function `f : E → F`, we say that `f` is continuously polynomial on a set `s`
if it is continuously polynomial around every point of `s`. -/
def CPolynomialOn (f : E → F) (s : Set E) 
goal: Prop

full_name: HasFiniteFPowerSeriesOnBall.hasFiniteFPowerSeriesAt
code: theorem HasFiniteFPowerSeriesOnBall.hasFiniteFPowerSeriesAt
    (hf : HasFiniteFPowerSeriesOnBall f p x n r) :
    HasFiniteFPowerSeriesAt f p x n 
goal: HasFiniteFPowerSeriesAt f p x n

full_name: HasFiniteFPowerSeriesAt.cPolynomialAt
code: theorem HasFiniteFPowerSeriesAt.cPolynomialAt (hf : HasFiniteFPowerSeriesAt f p x n) :
    CPolynomialAt 𝕜 f x 
goal: CPolynomialAt 𝕜 f x

full_name: HasFiniteFPowerSeriesOnBall.cPolynomialAt
code: theorem HasFiniteFPowerSeriesOnBall.cPolynomialAt (hf : HasFiniteFPowerSeriesOnBall f p x n r) :
    CPolynomialAt 𝕜 f x 
goal: CPolynomialAt 𝕜 f x

full_name: CPolynomialAt.analyticAt
code: theorem CPolynomialAt.analyticAt (hf : CPolynomialAt 𝕜 f x) : AnalyticAt 𝕜 f x 
goal: AnalyticAt 𝕜 f x

full_name: CPolynomialOn.analyticOn
code: theorem CPolynomialOn.analyticOn {s : Set E} (hf : CPolynomialOn 𝕜 f s) : AnalyticOn 𝕜 f s 
goal: AnalyticOn 𝕜 f s

full_name: HasFiniteFPowerSeriesOnBall.congr
code: theorem HasFiniteFPowerSeriesOnBall.congr (hf : HasFiniteFPowerSeriesOnBall f p x n r)
    (hg : EqOn f g (EMetric.ball x r)) : HasFiniteFPowerSeriesOnBall g p x n r 
goal: HasFiniteFPowerSeriesOnBall g p x n r

full_name: HasFiniteFPowerSeriesOnBall.comp_sub
code: /-- If a function `f` has a finite power series `p` around `x`, then the function
`z ↦ f (z - y)` has the same finite power series around `x + y`. -/
theorem HasFiniteFPowerSeriesOnBall.comp_sub (hf : HasFiniteFPowerSeriesOnBall f p x n r) (y : E) :
    HasFiniteFPowerSeriesOnBall (fun z => f (z - y)) p (x + y) n r 
goal: HasFiniteFPowerSeriesOnBall (fun z => f (z - y)) p (x + y) n r

full_name: HasFiniteFPowerSeriesOnBall.mono
code: theorem HasFiniteFPowerSeriesOnBall.mono (hf : HasFiniteFPowerSeriesOnBall f p x n r)
    (r'_pos : 0 < r') (hr : r' ≤ r) : HasFiniteFPowerSeriesOnBall f p x n r' 
goal: HasFiniteFPowerSeriesOnBall f p x n r'

full_name: HasFiniteFPowerSeriesAt.congr
code: theorem HasFiniteFPowerSeriesAt.congr (hf : HasFiniteFPowerSeriesAt f p x n) (hg : f =ᶠ[𝓝 x] g) :
    HasFiniteFPowerSeriesAt g p x n 
goal: HasFiniteFPowerSeriesAt g p x n

full_name: HasFiniteFPowerSeriesAt.eventually
code: protected theorem HasFiniteFPowerSeriesAt.eventually (hf : HasFiniteFPowerSeriesAt f p x n) :
    ∀ᶠ r : ℝ≥0∞ in 𝓝[>] 0, HasFiniteFPowerSeriesOnBall f p x n r 
goal: ∀ᶠ (r : ℝ≥0∞) in 𝓝[>] 0, HasFiniteFPowerSeriesOnBall f p x n r

full_name: hasFiniteFPowerSeriesOnBall_const
code: theorem hasFiniteFPowerSeriesOnBall_const {c : F} {e : E} :
    HasFiniteFPowerSeriesOnBall (fun _ => c) (constFormalMultilinearSeries 𝕜 E c) e 1 ⊤ 
goal: HasFiniteFPowerSeriesOnBall (fun x => c) (constFormalMultilinearSeries 𝕜 E c) e 1 ⊤

full_name: hasFiniteFPowerSeriesAt_const
code: theorem hasFiniteFPowerSeriesAt_const {c : F} {e : E} :
    HasFiniteFPowerSeriesAt (fun _ => c) (constFormalMultilinearSeries 𝕜 E c) e 1 
goal: HasFiniteFPowerSeriesAt (fun x => c) (constFormalMultilinearSeries 𝕜 E c) e 1

full_name: CPolynomialAt_const
code: theorem CPolynomialAt_const {v : F} : CPolynomialAt 𝕜 (fun _ => v) x 
goal: CPolynomialAt 𝕜 (fun x => v) x

full_name: CPolynomialOn_const
code: theorem CPolynomialOn_const {v : F} {s : Set E} : CPolynomialOn 𝕜 (fun _ => v) s 
goal: CPolynomialOn 𝕜 (fun x => v) s

full_name: HasFiniteFPowerSeriesOnBall.add
code: theorem HasFiniteFPowerSeriesOnBall.add (hf : HasFiniteFPowerSeriesOnBall f pf x n r)
    (hg : HasFiniteFPowerSeriesOnBall g pg x m r) :
    HasFiniteFPowerSeriesOnBall (f + g) (pf + pg) x (max n m) r 
goal: HasFiniteFPowerSeriesOnBall (f + g) (pf + pg) x (max n m) r

full_name: HasFiniteFPowerSeriesAt.add
code: theorem HasFiniteFPowerSeriesAt.add (hf : HasFiniteFPowerSeriesAt f pf x n)
    (hg : HasFiniteFPowerSeriesAt g pg x m) :
    HasFiniteFPowerSeriesAt (f + g) (pf + pg) x (max n m) 
goal: HasFiniteFPowerSeriesAt (f + g) (pf + pg) x (max n m)

full_name: CPolynomialAt.congr
code: theorem CPolynomialAt.congr (hf : CPolynomialAt 𝕜 f x) (hg : f =ᶠ[𝓝 x] g) : CPolynomialAt 𝕜 g x 
goal: CPolynomialAt 𝕜 g x

full_name: CPolynomialAt_congr
code: theorem CPolynomialAt_congr (h : f =ᶠ[𝓝 x] g) : CPolynomialAt 𝕜 f x ↔ CPolynomialAt 𝕜 g x 
goal: CPolynomialAt 𝕜 f x ↔ CPolynomialAt 𝕜 g x

full_name: CPolynomialAt.add
code: theorem CPolynomialAt.add (hf : CPolynomialAt 𝕜 f x) (hg : CPolynomialAt 𝕜 g x) :
    CPolynomialAt 𝕜 (f + g) x 
goal: CPolynomialAt 𝕜 (f + g) x

full_name: HasFiniteFPowerSeriesOnBall.neg
code: theorem HasFiniteFPowerSeriesOnBall.neg (hf : HasFiniteFPowerSeriesOnBall f pf x n r) :
    HasFiniteFPowerSeriesOnBall (-f) (-pf) x n r 
goal: HasFiniteFPowerSeriesOnBall (-f) (-pf) x n r

full_name: HasFiniteFPowerSeriesAt.neg
code: theorem HasFiniteFPowerSeriesAt.neg (hf : HasFiniteFPowerSeriesAt f pf x n) :
    HasFiniteFPowerSeriesAt (-f) (-pf) x n 
goal: HasFiniteFPowerSeriesAt (-f) (-pf) x n

full_name: CPolynomialAt.neg
code: theorem CPolynomialAt.neg (hf : CPolynomialAt 𝕜 f x) : CPolynomialAt 𝕜 (-f) x 
goal: CPolynomialAt 𝕜 (-f) x

full_name: HasFiniteFPowerSeriesOnBall.sub
code: theorem HasFiniteFPowerSeriesOnBall.sub (hf : HasFiniteFPowerSeriesOnBall f pf x n r)
    (hg : HasFiniteFPowerSeriesOnBall g pg x m r) :
    HasFiniteFPowerSeriesOnBall (f - g) (pf - pg) x (max n m) r 
goal: HasFiniteFPowerSeriesOnBall (f - g) (pf - pg) x (max n m) r

full_name: HasFiniteFPowerSeriesAt.sub
code: theorem HasFiniteFPowerSeriesAt.sub (hf : HasFiniteFPowerSeriesAt f pf x n)
    (hg : HasFiniteFPowerSeriesAt g pg x m) :
    HasFiniteFPowerSeriesAt (f - g) (pf - pg) x (max n m) 
goal: HasFiniteFPowerSeriesAt (f - g) (pf - pg) x (max n m)

full_name: CPolynomialAt.sub
code: theorem CPolynomialAt.sub (hf : CPolynomialAt 𝕜 f x) (hg : CPolynomialAt 𝕜 g x) :
    CPolynomialAt 𝕜 (f - g) x 
goal: CPolynomialAt 𝕜 (f - g) x

full_name: CPolynomialOn.mono
code: theorem CPolynomialOn.mono {s t : Set E} (hf : CPolynomialOn 𝕜 f t) (hst : s ⊆ t) :
    CPolynomialOn 𝕜 f s 
goal: CPolynomialOn 𝕜 f s

full_name: CPolynomialOn.congr'
code: theorem CPolynomialOn.congr' {s : Set E} (hf : CPolynomialOn 𝕜 f s) (hg : f =ᶠ[𝓝ˢ s] g) :
    CPolynomialOn 𝕜 g s 
goal: CPolynomialOn 𝕜 g s

full_name: CPolynomialOn_congr'
code: theorem CPolynomialOn_congr' {s : Set E} (h : f =ᶠ[𝓝ˢ s] g) :
    CPolynomialOn 𝕜 f s ↔ CPolynomialOn 𝕜 g s 
goal: CPolynomialOn 𝕜 f s ↔ CPolynomialOn 𝕜 g s

full_name: CPolynomialOn.congr
code: theorem CPolynomialOn.congr {s : Set E} (hs : IsOpen s) (hf : CPolynomialOn 𝕜 f s)
    (hg : s.EqOn f g) : CPolynomialOn 𝕜 g s 
goal: CPolynomialOn 𝕜 g s

full_name: CPolynomialOn_congr
code: theorem CPolynomialOn_congr {s : Set E} (hs : IsOpen s) (h : s.EqOn f g) :
    CPolynomialOn 𝕜 f s ↔ CPolynomialOn 𝕜 g s 
goal: CPolynomialOn 𝕜 f s ↔ CPolynomialOn 𝕜 g s

full_name: CPolynomialOn.add
code: theorem CPolynomialOn.add {s : Set E} (hf : CPolynomialOn 𝕜 f s) (hg : CPolynomialOn 𝕜 g s) :
    CPolynomialOn 𝕜 (f + g) s 
goal: CPolynomialOn 𝕜 (f + g) s

full_name: CPolynomialOn.sub
code: theorem CPolynomialOn.sub {s : Set E} (hf : CPolynomialOn 𝕜 f s) (hg : CPolynomialOn 𝕜 g s) :
    CPolynomialOn 𝕜 (f - g) s 
goal: CPolynomialOn 𝕜 (f - g) s

full_name: ContinuousLinearMap.comp_hasFiniteFPowerSeriesOnBall
code: /-- If a function `f` has a finite power series `p` on a ball and `g` is a continuous linear map,
then `g ∘ f` has the finite power series `g ∘ p` on the same ball. -/
theorem ContinuousLinearMap.comp_hasFiniteFPowerSeriesOnBall (g : F →L[𝕜] G)
    (h : HasFiniteFPowerSeriesOnBall f p x n r) :
    HasFiniteFPowerSeriesOnBall (g ∘ f) (g.compFormalMultilinearSeries p) x n r 
goal: HasFiniteFPowerSeriesOnBall (⇑g ∘ f) (g.compFormalMultilinearSeries p) x n r

full_name: ContinuousLinearMap.comp_cPolynomialOn
code: /-- If a function `f` is continuously polynomial on a set `s` and `g` is a continuous linear map,
then `g ∘ f` is continuously polynomial on `s`. -/
theorem ContinuousLinearMap.comp_cPolynomialOn {s : Set E} (g : F →L[𝕜] G)
    (h : CPolynomialOn 𝕜 f s) : CPolynomialOn 𝕜 (g ∘ f) s 
goal: CPolynomialOn 𝕜 (⇑g ∘ f) s

full_name: HasFiniteFPowerSeriesOnBall.eq_partialSum
code: /-- If a function admits a finite power series expansion bounded by `n`, then it is equal to
the `m`th partial sums of this power series at every point of the disk for `n ≤ m`. -/
theorem HasFiniteFPowerSeriesOnBall.eq_partialSum
    (hf : HasFiniteFPowerSeriesOnBall f p x n r) :
    ∀ y ∈ EMetric.ball (0 : E) r, ∀ m, n ≤ m →
    f (x + y) = p.partialSum m y 
goal: y ∈ EMetric.ball 0 r → ∀ (m : ℕ), n ≤ m → f (x + y) = p.partialSum m y

full_name: HasFiniteFPowerSeriesOnBall.eq_partialSum'
code: /-- Variant of the previous result with the variable expressed as `y` instead of `x + y`. -/
theorem HasFiniteFPowerSeriesOnBall.eq_partialSum'
    (hf : HasFiniteFPowerSeriesOnBall f p x n r) :
    ∀ y ∈ EMetric.ball x r, ∀ m, n ≤ m →
    f y = p.partialSum m (y - x) 
goal: y ∈ EMetric.ball x r → ∀ (m : ℕ), n ≤ m → f y = p.partialSum m (y - x)

full_name: HasFiniteFPowerSeriesOnBall.eq_zero_of_bound_zero
code: /-- If `f` has a formal power series on a ball bounded by `0`, then `f` is equal to `0` on
the ball. -/
theorem HasFiniteFPowerSeriesOnBall.eq_zero_of_bound_zero
    (hf : HasFiniteFPowerSeriesOnBall f pf x 0 r) : ∀ y ∈ EMetric.ball x r, f y = 0 
goal: y ∈ EMetric.ball x r → f y = 0

full_name: HasFiniteFPowerSeriesOnBall.bound_zero_of_eq_zero
code: theorem HasFiniteFPowerSeriesOnBall.bound_zero_of_eq_zero (hf : ∀ y ∈ EMetric.ball x r, f y = 0)
    (r_pos : 0 < r) (hp : ∀ n, p n = 0) : HasFiniteFPowerSeriesOnBall f p x 0 r 
goal: HasFiniteFPowerSeriesOnBall f p x 0 r

full_name: HasFiniteFPowerSeriesAt.eventually_zero_of_bound_zero
code: /-- If `f` has a formal power series at `x` bounded by `0`, then `f` is equal to `0` in a
neighborhood of `x`. -/
theorem HasFiniteFPowerSeriesAt.eventually_zero_of_bound_zero
    (hf : HasFiniteFPowerSeriesAt f pf x 0) : f =ᶠ[𝓝 x] 0 
goal: f =ᶠ[𝓝 x] 0

full_name: HasFiniteFPowerSeriesOnBall.eq_const_of_bound_one
code: /-- If `f` has a formal power series on a ball bounded by `1`, then `f` is constant equal
to `f x` on the ball. -/
theorem HasFiniteFPowerSeriesOnBall.eq_const_of_bound_one
    (hf : HasFiniteFPowerSeriesOnBall f pf x 1 r) : ∀ y ∈ EMetric.ball x r, f y = f x 
goal: y ∈ EMetric.ball x r → f y = f x

full_name: HasFiniteFPowerSeriesAt.eventually_const_of_bound_one
code: /-- If `f` has a formal power series at x bounded by `1`, then `f` is constant equal
to `f x` in a neighborhood of `x`. -/
theorem HasFiniteFPowerSeriesAt.eventually_const_of_bound_one
    (hf : HasFiniteFPowerSeriesAt f pf x 1) : f =ᶠ[𝓝 x] (fun _ => f x) 
goal: f =ᶠ[𝓝 x] fun x_1 => f x

full_name: HasFiniteFPowerSeriesOnBall.continuousOn
code: /-- If a function admits a finite power series expansion on a disk, then it is continuous there. -/
protected theorem HasFiniteFPowerSeriesOnBall.continuousOn
    (hf : HasFiniteFPowerSeriesOnBall f p x n r) :
    ContinuousOn f (EMetric.ball x r) 
goal: ContinuousOn f (EMetric.ball x r)

full_name: HasFiniteFPowerSeriesAt.continuousAt
code: protected theorem HasFiniteFPowerSeriesAt.continuousAt (hf : HasFiniteFPowerSeriesAt f p x n) :
    ContinuousAt f x 
goal: ContinuousAt f x

full_name: CPolynomialAt.continuousAt
code: protected theorem CPolynomialAt.continuousAt (hf : CPolynomialAt 𝕜 f x) : ContinuousAt f x 
goal: ContinuousAt f x

full_name: CPolynomialOn.continuousOn
code: protected theorem CPolynomialOn.continuousOn {s : Set E} (hf : CPolynomialOn 𝕜 f s) :
    ContinuousOn f s 
goal: ContinuousOn f s

full_name: CPolynomialOn.continuous
code: /-- Continuously polynomial everywhere implies continuous -/
theorem CPolynomialOn.continuous {f : E → F} (fa : CPolynomialOn 𝕜 f univ) : Continuous f 
goal: Continuous f

full_name: FormalMultilinearSeries.sum_of_finite
code: protected theorem FormalMultilinearSeries.sum_of_finite (p : FormalMultilinearSeries 𝕜 E F)
    {n : ℕ} (hn : ∀ m, n ≤ m → p m = 0) (x : E) :
    p.sum x = p.partialSum n x 
goal: p.sum x = p.partialSum n x

full_name: FormalMultilinearSeries.hasSum_of_finite
code: /-- A finite formal multilinear series sums to its sum at every point. -/
protected theorem FormalMultilinearSeries.hasSum_of_finite (p : FormalMultilinearSeries 𝕜 E F)
    {n : ℕ} (hn : ∀ m, n ≤ m → p m = 0) (x : E) :
    HasSum (fun n : ℕ => p n fun _ => x) (p.sum x) 
goal: HasSum (fun n => (p n) fun x_1 => x) (p.sum x)

full_name: FormalMultilinearSeries.hasFiniteFPowerSeriesOnBall_of_finite
code: /-- The sum of a finite power series `p` admits `p` as a power series. -/
protected theorem FormalMultilinearSeries.hasFiniteFPowerSeriesOnBall_of_finite
    (p : FormalMultilinearSeries 𝕜 E F) {n : ℕ} (hn : ∀ m, n ≤ m → p m = 0) :
    HasFiniteFPowerSeriesOnBall p.sum p 0 n ⊤ 
goal: HasFiniteFPowerSeriesOnBall p.sum p 0 n ⊤

full_name: HasFiniteFPowerSeriesOnBall.sum
code: theorem HasFiniteFPowerSeriesOnBall.sum (h : HasFiniteFPowerSeriesOnBall f p x n r) {y : E}
    (hy : y ∈ EMetric.ball (0 : E) r) : f (x + y) = p.sum y 
goal: f (x + y) = p.sum y

full_name: FormalMultilinearSeries.continuousOn_of_finite
code: /-- The sum of a finite power series is continuous. -/
protected theorem FormalMultilinearSeries.continuousOn_of_finite
    (p : FormalMultilinearSeries 𝕜 E F) {n : ℕ} (hn : ∀ m, n ≤ m → p m = 0) :
    Continuous p.sum 
goal: Continuous p.sum

full_name: FormalMultilinearSeries.changeOriginSeriesTerm_bound
code: /-- If `p` is a formal multilinear series such that `p m = 0` for `n ≤ m`, then
`p.changeOriginSeriesTerm k l = 0` for `n ≤ k + l`.  -/
lemma changeOriginSeriesTerm_bound (p : FormalMultilinearSeries 𝕜 E F) {n : ℕ}
    (hn : ∀ (m : ℕ), n ≤ m → p m = 0) (k l : ℕ) {s : Finset (Fin (k + l))}
    (hs : s.card = l) (hkl : n ≤ k + l) :
    p.changeOriginSeriesTerm k l s hs = 0 
goal: p.changeOriginSeriesTerm k l s hs = 0

full_name: FormalMultilinearSeries.changeOriginSeries_finite_of_finite
code: /-- If `p` is a finite formal multilinear series, then so is `p.changeOriginSeries k` for every
`k` in `ℕ`. More precisely, if `p m = 0` for `n ≤ m`, then `p.changeOriginSeries k m = 0` for
`n ≤ k + m`.  -/
lemma changeOriginSeries_finite_of_finite (p : FormalMultilinearSeries 𝕜 E F) {n : ℕ}
    (hn : ∀ (m : ℕ), n ≤ m → p m = 0) (k : ℕ) : ∀ {m : ℕ}, n ≤ k + m →
    p.changeOriginSeries k m = 0 
goal: n ≤ k + m → p.changeOriginSeries k m = 0

full_name: FormalMultilinearSeries.changeOriginSeries_sum_eq_partialSum_of_finite
code: lemma changeOriginSeries_sum_eq_partialSum_of_finite (p : FormalMultilinearSeries 𝕜 E F) {n : ℕ}
    (hn : ∀ (m : ℕ), n ≤ m → p m = 0) (k : ℕ) :
    (p.changeOriginSeries k).sum = (p.changeOriginSeries k).partialSum (n - k) 
goal: (p.changeOriginSeries k).sum = (p.changeOriginSeries k).partialSum (n - k)

full_name: FormalMultilinearSeries.changeOrigin_finite_of_finite
code: /-- If `p` is a formal multilinear series such that `p m = 0` for `n ≤ m`, then
`p.changeOrigin x k = 0` for `n ≤ k`.  -/
lemma changeOrigin_finite_of_finite (p : FormalMultilinearSeries 𝕜 E F) {n : ℕ}
    (hn : ∀ (m : ℕ), n ≤ m → p m = 0) {k : ℕ} (hk : n ≤ k) :
    p.changeOrigin x k = 0 
goal: p.changeOrigin x k = 0

full_name: FormalMultilinearSeries.hasFiniteFPowerSeriesOnBall_changeOrigin
code: theorem hasFiniteFPowerSeriesOnBall_changeOrigin (p : FormalMultilinearSeries 𝕜 E F) {n : ℕ}
    (k : ℕ) (hn : ∀ (m : ℕ), n + k ≤ m → p m = 0) :
    HasFiniteFPowerSeriesOnBall (p.changeOrigin · k) (p.changeOriginSeries k) 0 n ⊤ 
goal: HasFiniteFPowerSeriesOnBall (fun x => p.changeOrigin x k) (p.changeOriginSeries k) 0 n ⊤

full_name: FormalMultilinearSeries.changeOrigin_eval_of_finite
code: theorem changeOrigin_eval_of_finite (p : FormalMultilinearSeries 𝕜 E F) {n : ℕ}
    (hn : ∀ (m : ℕ), n ≤ m → p m = 0) (x y : E) :
    (p.changeOrigin x).sum y = p.sum (x + y) 
goal: (p.changeOrigin x).sum y = p.sum (x + y)

full_name: FormalMultilinearSeries.cPolynomialAt_changeOrigin_of_finite
code: /-- The terms of the formal multilinear series `p.changeOrigin` are continuously polynomial
as we vary the origin -/
theorem cPolynomialAt_changeOrigin_of_finite (p : FormalMultilinearSeries 𝕜 E F)
    {n : ℕ} (hn : ∀ (m : ℕ), n ≤ m → p m = 0) (k : ℕ) :
    CPolynomialAt 𝕜 (p.changeOrigin · k) 0 
goal: CPolynomialAt 𝕜 (fun x => p.changeOrigin x k) 0

full_name: HasFiniteFPowerSeriesOnBall.changeOrigin
code: theorem HasFiniteFPowerSeriesOnBall.changeOrigin (hf : HasFiniteFPowerSeriesOnBall f p x n r)
    (h : (‖y‖₊ : ℝ≥0∞) < r) :
    HasFiniteFPowerSeriesOnBall f (p.changeOrigin y) (x + y) n (r - ‖y‖₊) 
goal: HasFiniteFPowerSeriesOnBall f (p.changeOrigin y) (x + y) n (r - ↑‖y‖₊)

full_name: HasFiniteFPowerSeriesOnBall.cPolynomialAt_of_mem
code: /-- If a function admits a finite power series expansion `p` on an open ball `B (x, r)`, then
it is continuously polynomial at every point of this ball. -/
theorem HasFiniteFPowerSeriesOnBall.cPolynomialAt_of_mem
    (hf : HasFiniteFPowerSeriesOnBall f p x n r) (h : y ∈ EMetric.ball x r) :
    CPolynomialAt 𝕜 f y 
goal: CPolynomialAt 𝕜 f y

full_name: HasFiniteFPowerSeriesOnBall.cPolynomialOn
code: theorem HasFiniteFPowerSeriesOnBall.cPolynomialOn (hf : HasFiniteFPowerSeriesOnBall f p x n r) :
    CPolynomialOn 𝕜 f (EMetric.ball x r) 
goal: CPolynomialOn 𝕜 f (EMetric.ball x r)

full_name: isOpen_cPolynomialAt
code: /-- For any function `f` from a normed vector space to a normed vector space, the set of points
`x` such that `f` is continuously polynomial at `x` is open. -/
theorem isOpen_cPolynomialAt : IsOpen { x | CPolynomialAt 𝕜 f x } 
goal: IsOpen {x | CPolynomialAt 𝕜 f x}

full_name: CPolynomialAt.eventually_cPolynomialAt
code: theorem CPolynomialAt.eventually_cPolynomialAt {f : E → F} {x : E} (h : CPolynomialAt 𝕜 f x) :
    ∀ᶠ y in 𝓝 x, CPolynomialAt 𝕜 f y 
goal: ∀ᶠ (y : E) in 𝓝 x, CPolynomialAt 𝕜 f y

full_name: CPolynomialAt.exists_mem_nhds_cPolynomialOn
code: theorem CPolynomialAt.exists_mem_nhds_cPolynomialOn {f : E → F} {x : E} (h : CPolynomialAt 𝕜 f x) :
    ∃ s ∈ 𝓝 x, CPolynomialOn 𝕜 f s 
goal: ∃ s ∈ 𝓝 x, CPolynomialOn 𝕜 f s

full_name: CPolynomialAt.exists_ball_cPolynomialOn
code: /-- If `f` is continuously polynomial at a point, then it is continuously polynomial in a
nonempty ball around that point. -/
theorem CPolynomialAt.exists_ball_cPolynomialOn {f : E → F} {x : E} (h : CPolynomialAt 𝕜 f x) :
    ∃ r : ℝ, 0 < r ∧ CPolynomialOn 𝕜 f (Metric.ball x r) 
goal: ∃ r, 0 < r ∧ CPolynomialOn 𝕜 f (Metric.ball x r)