Theorem: iteratedDeriv_comp_neg
File: Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean

tactic: induction' n with n ih generalizing a
state_before: 𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
R : Type u_3
inst✝³ : Semiring R
inst✝² : Module R F
inst✝¹ : SMulCommClass 𝕜 R F
inst✝ : ContinuousConstSMul R F
n✝ : ℕ
x : 𝕜
s : Set 𝕜
hx : x ∈ s
h : UniqueDiffOn 𝕜 s
f✝ g : 𝕜 → F
n : ℕ
f : 𝕜 → F
a : 𝕜
⊢ iteratedDeriv n (fun x => f (-x)) a = (-1) ^ n • iteratedDeriv n f (-a)
state_after: case zero
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
R : Type u_3
inst✝³ : Semiring R
inst✝² : Module R F
inst✝¹ : SMulCommClass 𝕜 R F
inst✝ : ContinuousConstSMul R F
n : ℕ
x : 𝕜
s : Set 𝕜
hx : x ∈ s
h : UniqueDiffOn 𝕜 s
f✝ g f : 𝕜 → F
a : 𝕜
⊢ iteratedDeriv 0 (fun x => f (-x)) a = (-1) ^ 0 • iteratedDeriv 0 f (-a)

case succ
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
R : Type u_3
inst✝³ : Semiring R
inst✝² : Module R F
inst✝¹ : SMulCommClass 𝕜 R F
inst✝ : ContinuousConstSMul R F
n✝ : ℕ
x : 𝕜
s : Set 𝕜
hx : x ∈ s
h : UniqueDiffOn 𝕜 s
f✝ g f : 𝕜 → F
n : ℕ
ih : ∀ (a : 𝕜), iteratedDeriv n (fun x => f (-x)) a = (-1) ^ n • iteratedDeriv n f (-a)
a : 𝕜
⊢ iteratedDeriv (n + 1) (fun x => f (-x)) a = (-1) ^ (n + 1) • iteratedDeriv (n + 1) f (-a)

tactic: simp only [Nat.zero_eq, iteratedDeriv_zero, pow_zero, one_smul]
state_before: case zero
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
R : Type u_3
inst✝³ : Semiring R
inst✝² : Module R F
inst✝¹ : SMulCommClass 𝕜 R F
inst✝ : ContinuousConstSMul R F
n : ℕ
x : 𝕜
s : Set 𝕜
hx : x ∈ s
h : UniqueDiffOn 𝕜 s
f✝ g f : 𝕜 → F
a : 𝕜
⊢ iteratedDeriv 0 (fun x => f (-x)) a = (-1) ^ 0 • iteratedDeriv 0 f (-a)
state_after: no goals

tactic: have ih' : iteratedDeriv n (fun x ↦ f (-x)) = fun x ↦ (-1 : 𝕜) ^ n • iteratedDeriv n f (-x) :=
  funext ih
state_before: case succ
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
R : Type u_3
inst✝³ : Semiring R
inst✝² : Module R F
inst✝¹ : SMulCommClass 𝕜 R F
inst✝ : ContinuousConstSMul R F
n✝ : ℕ
x : 𝕜
s : Set 𝕜
hx : x ∈ s
h : UniqueDiffOn 𝕜 s
f✝ g f : 𝕜 → F
n : ℕ
ih : ∀ (a : 𝕜), iteratedDeriv n (fun x => f (-x)) a = (-1) ^ n • iteratedDeriv n f (-a)
a : 𝕜
⊢ iteratedDeriv (n + 1) (fun x => f (-x)) a = (-1) ^ (n + 1) • iteratedDeriv (n + 1) f (-a)
state_after: case succ
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
R : Type u_3
inst✝³ : Semiring R
inst✝² : Module R F
inst✝¹ : SMulCommClass 𝕜 R F
inst✝ : ContinuousConstSMul R F
n✝ : ℕ
x : 𝕜
s : Set 𝕜
hx : x ∈ s
h : UniqueDiffOn 𝕜 s
f✝ g f : 𝕜 → F
n : ℕ
ih : ∀ (a : 𝕜), iteratedDeriv n (fun x => f (-x)) a = (-1) ^ n • iteratedDeriv n f (-a)
a : 𝕜
ih' : (iteratedDeriv n fun x => f (-x)) = fun x => (-1) ^ n • iteratedDeriv n f (-x)
⊢ iteratedDeriv (n + 1) (fun x => f (-x)) a = (-1) ^ (n + 1) • iteratedDeriv (n + 1) f (-a)

tactic: rw [iteratedDeriv_succ, iteratedDeriv_succ, ih', pow_succ', neg_mul, one_mul,
  deriv_comp_neg (f := fun x ↦ (-1 : 𝕜) ^ n • iteratedDeriv n f x), deriv_const_smul',
  neg_smul]
state_before: case succ
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
R : Type u_3
inst✝³ : Semiring R
inst✝² : Module R F
inst✝¹ : SMulCommClass 𝕜 R F
inst✝ : ContinuousConstSMul R F
n✝ : ℕ
x : 𝕜
s : Set 𝕜
hx : x ∈ s
h : UniqueDiffOn 𝕜 s
f✝ g f : 𝕜 → F
n : ℕ
ih : ∀ (a : 𝕜), iteratedDeriv n (fun x => f (-x)) a = (-1) ^ n • iteratedDeriv n f (-a)
a : 𝕜
ih' : (iteratedDeriv n fun x => f (-x)) = fun x => (-1) ^ n • iteratedDeriv n f (-x)
⊢ iteratedDeriv (n + 1) (fun x => f (-x)) a = (-1) ^ (n + 1) • iteratedDeriv (n + 1) f (-a)
state_after: no goals