Theorem: Polynomial.hasStrictDerivAt
File: Mathlib/Analysis/Calculus/Deriv/Polynomial.lean

tactic: induction p using Polynomial.induction_on'
state_before: 𝕜 : Type u
inst✝⁶ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
E : Type w
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x✝ : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
R : Type ?u.2579
inst✝¹ : CommSemiring R
inst✝ : Algebra R 𝕜
p : 𝕜[X]
q : R[X]
x : 𝕜
⊢ HasStrictDerivAt (fun x => eval x p) (eval x (↑derivative p)) x

tactic: case h_add p q hp hq => simpa using hp.add hq
state_before: case h_add
𝕜 : Type u
inst✝⁶ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
E : Type w
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x✝ : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
R : Type ?u.2579
inst✝¹ : CommSemiring R
inst✝ : Algebra R 𝕜
p : 𝕜[X]
q : R[X]
x : 𝕜
p✝ q✝ : 𝕜[X]
a✝¹ : HasStrictDerivAt (fun x => eval x p✝) (eval x (↑derivative p✝)) x
a✝ : HasStrictDerivAt (fun x => eval x q✝) (eval x (↑derivative q✝)) x
⊢ HasStrictDerivAt (fun x => eval x (p✝ + q✝)) (eval x (↑derivative (p✝ + q✝))) x

case h_monomial
𝕜 : Type u
inst✝⁶ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
E : Type w
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x✝ : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
R : Type ?u.2579
inst✝¹ : CommSemiring R
inst✝ : Algebra R 𝕜
p : 𝕜[X]
q : R[X]
x : 𝕜
n✝ : ℕ
a✝ : 𝕜
⊢ HasStrictDerivAt (fun x => eval x (↑(monomial n✝) a✝)) (eval x (↑derivative (↑(monomial n✝) a✝))) x

tactic: case h_monomial n a => simpa [mul_assoc] using (hasStrictDerivAt_pow n x).const_mul a
state_before: case h_monomial
𝕜 : Type u
inst✝⁶ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
E : Type w
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x✝ : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
R : Type ?u.2579
inst✝¹ : CommSemiring R
inst✝ : Algebra R 𝕜
p : 𝕜[X]
q : R[X]
x : 𝕜
n✝ : ℕ
a✝ : 𝕜
⊢ HasStrictDerivAt (fun x => eval x (↑(monomial n✝) a✝)) (eval x (↑derivative (↑(monomial n✝) a✝))) x

tactic: simpa using hp.add hq
state_before: 𝕜 : Type u
inst✝⁶ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
E : Type w
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x✝ : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
R : Type ?u.2579
inst✝¹ : CommSemiring R
inst✝ : Algebra R 𝕜
p✝ : 𝕜[X]
q✝ : R[X]
x : 𝕜
p q : 𝕜[X]
hp : HasStrictDerivAt (fun x => eval x p) (eval x (↑derivative p)) x
hq : HasStrictDerivAt (fun x => eval x q) (eval x (↑derivative q)) x
⊢ HasStrictDerivAt (fun x => eval x (p + q)) (eval x (↑derivative (p + q))) x

tactic: simpa [mul_assoc] using (hasStrictDerivAt_pow n x).const_mul a
state_before: 𝕜 : Type u
inst✝⁶ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
E : Type w
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x✝ : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
R : Type ?u.2579
inst✝¹ : CommSemiring R
inst✝ : Algebra R 𝕜
p : 𝕜[X]
q : R[X]
x : 𝕜
n : ℕ
a : 𝕜
⊢ HasStrictDerivAt (fun x => eval x (↑(monomial n) a)) (eval x (↑derivative (↑(monomial n) a))) x