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

tactic: induction n generalizing f g with
| zero => rwa [iteratedDerivWithin_zero]
| succ n IH =>
  intro y hy
  have : UniqueDiffWithinAt 𝕜 s y := h.uniqueDiffWithinAt hy
  rw [iteratedDerivWithin_succ this, iteratedDerivWithin_succ this]
  exact derivWithin_congr (IH hfg) (IH hfg hy)
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
hfg : Set.EqOn f g s
⊢ Set.EqOn (iteratedDerivWithin n f s) (iteratedDerivWithin n g s) s
state_after: no goals

tactic: rwa [iteratedDerivWithin_zero]
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
x : 𝕜
s : Set 𝕜
hx : x ∈ s
h : UniqueDiffOn 𝕜 s
f g : 𝕜 → F
hfg : Set.EqOn f g s
⊢ Set.EqOn (iteratedDerivWithin 0 f s) (iteratedDerivWithin 0 g s) s
state_after: no goals

tactic: intro y hy
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
x : 𝕜
s : Set 𝕜
hx : x ∈ s
h : UniqueDiffOn 𝕜 s
n : ℕ
IH : ∀ {f g : 𝕜 → F}, Set.EqOn f g s → Set.EqOn (iteratedDerivWithin n f s) (iteratedDerivWithin n g s) s
f g : 𝕜 → F
hfg : Set.EqOn f g s
⊢ Set.EqOn (iteratedDerivWithin (n + 1) f s) (iteratedDerivWithin (n + 1) g s) s
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
x : 𝕜
s : Set 𝕜
hx : x ∈ s
h : UniqueDiffOn 𝕜 s
n : ℕ
IH : ∀ {f g : 𝕜 → F}, Set.EqOn f g s → Set.EqOn (iteratedDerivWithin n f s) (iteratedDerivWithin n g s) s
f g : 𝕜 → F
hfg : Set.EqOn f g s
y : 𝕜
hy : y ∈ s
⊢ iteratedDerivWithin (n + 1) f s y = iteratedDerivWithin (n + 1) g s y

tactic: have : UniqueDiffWithinAt 𝕜 s y := h.uniqueDiffWithinAt hy
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
x : 𝕜
s : Set 𝕜
hx : x ∈ s
h : UniqueDiffOn 𝕜 s
n : ℕ
IH : ∀ {f g : 𝕜 → F}, Set.EqOn f g s → Set.EqOn (iteratedDerivWithin n f s) (iteratedDerivWithin n g s) s
f g : 𝕜 → F
hfg : Set.EqOn f g s
y : 𝕜
hy : y ∈ s
⊢ iteratedDerivWithin (n + 1) f s y = iteratedDerivWithin (n + 1) g s y
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
x : 𝕜
s : Set 𝕜
hx : x ∈ s
h : UniqueDiffOn 𝕜 s
n : ℕ
IH : ∀ {f g : 𝕜 → F}, Set.EqOn f g s → Set.EqOn (iteratedDerivWithin n f s) (iteratedDerivWithin n g s) s
f g : 𝕜 → F
hfg : Set.EqOn f g s
y : 𝕜
hy : y ∈ s
this : UniqueDiffWithinAt 𝕜 s y
⊢ iteratedDerivWithin (n + 1) f s y = iteratedDerivWithin (n + 1) g s y

tactic: rw [iteratedDerivWithin_succ this, iteratedDerivWithin_succ this]
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
x : 𝕜
s : Set 𝕜
hx : x ∈ s
h : UniqueDiffOn 𝕜 s
n : ℕ
IH : ∀ {f g : 𝕜 → F}, Set.EqOn f g s → Set.EqOn (iteratedDerivWithin n f s) (iteratedDerivWithin n g s) s
f g : 𝕜 → F
hfg : Set.EqOn f g s
y : 𝕜
hy : y ∈ s
this : UniqueDiffWithinAt 𝕜 s y
⊢ iteratedDerivWithin (n + 1) f s y = iteratedDerivWithin (n + 1) g s y
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
x : 𝕜
s : Set 𝕜
hx : x ∈ s
h : UniqueDiffOn 𝕜 s
n : ℕ
IH : ∀ {f g : 𝕜 → F}, Set.EqOn f g s → Set.EqOn (iteratedDerivWithin n f s) (iteratedDerivWithin n g s) s
f g : 𝕜 → F
hfg : Set.EqOn f g s
y : 𝕜
hy : y ∈ s
this : UniqueDiffWithinAt 𝕜 s y
⊢ derivWithin (iteratedDerivWithin n f s) s y = derivWithin (iteratedDerivWithin n g s) s y

tactic: exact derivWithin_congr (IH hfg) (IH hfg hy)
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
x : 𝕜
s : Set 𝕜
hx : x ∈ s
h : UniqueDiffOn 𝕜 s
n : ℕ
IH : ∀ {f g : 𝕜 → F}, Set.EqOn f g s → Set.EqOn (iteratedDerivWithin n f s) (iteratedDerivWithin n g s) s
f g : 𝕜 → F
hfg : Set.EqOn f g s
y : 𝕜
hy : y ∈ s
this : UniqueDiffWithinAt 𝕜 s y
⊢ derivWithin (iteratedDerivWithin n f s) s y = derivWithin (iteratedDerivWithin n g s) s y
state_after: no goals