Theorem: _private.Mathlib.Analysis.Calculus.FDeriv.Analytic.0.Equiv.succ_embeddingFinSucc_fst_symm_apply
File: Mathlib/Analysis/Calculus/FDeriv/Analytic.lean

Proof steps:
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι✝ : Type u_2
E : ι✝ → Type u_3
inst✝³ : (i : ι✝) → NormedAddCommGroup (E i)
inst✝² : (i : ι✝) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι✝
f : ContinuousMultilinearMap 𝕜 E F
n✝ : ℕ∞
x : (i : ι✝) → E i
ι : Type u_4
inst✝ : DecidableEq ι
n : ℕ
e : Fin (n + 1) ↪ ι
k : ι
h'k : k ∈ Set.range ⇑((Equiv.embeddingFinSucc n ι) e).fst
hk : k ∈ Set.range ⇑e
⊢ (((Equiv.embeddingFinSucc n ι) e).fst.toEquivRange.symm ⟨k, h'k⟩).succ = e.toEquivRange.symm ⟨k, hk⟩
state_after: case intro
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι✝ : Type u_2
E : ι✝ → Type u_3
inst✝³ : (i : ι✝) → NormedAddCommGroup (E i)
inst✝² : (i : ι✝) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι✝
f : ContinuousMultilinearMap 𝕜 E F
n✝ : ℕ∞
x : (i : ι✝) → E i
ι : Type u_4
inst✝ : DecidableEq ι
n : ℕ
e : Fin (n + 1) ↪ ι
j : Fin (n + 1)
h'k : e j ∈ Set.range ⇑((Equiv.embeddingFinSucc n ι) e).fst
⊢ (((Equiv.embeddingFinSucc n ι) e).fst.toEquivRange.symm ⟨e j, h'k⟩).succ = e.toEquivRange.symm ⟨e j, ⋯⟩
tactic: rcases hk with ⟨j, rfl⟩
state_before: case intro
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι✝ : Type u_2
E : ι✝ → Type u_3
inst✝³ : (i : ι✝) → NormedAddCommGroup (E i)
inst✝² : (i : ι✝) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι✝
f : ContinuousMultilinearMap 𝕜 E F
n✝ : ℕ∞
x : (i : ι✝) → E i
ι : Type u_4
inst✝ : DecidableEq ι
n : ℕ
e : Fin (n + 1) ↪ ι
j : Fin (n + 1)
h'k : e j ∈ Set.range ⇑((Equiv.embeddingFinSucc n ι) e).fst
⊢ (((Equiv.embeddingFinSucc n ι) e).fst.toEquivRange.symm ⟨e j, h'k⟩).succ = e.toEquivRange.symm ⟨e j, ⋯⟩
state_after: case intro
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι✝ : Type u_2
E : ι✝ → Type u_3
inst✝³ : (i : ι✝) → NormedAddCommGroup (E i)
inst✝² : (i : ι✝) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι✝
f : ContinuousMultilinearMap 𝕜 E F
n✝ : ℕ∞
x : (i : ι✝) → E i
ι : Type u_4
inst✝ : DecidableEq ι
n : ℕ
e : Fin (n + 1) ↪ ι
j : Fin (n + 1)
h'k : e j ∈ Set.range ⇑((Equiv.embeddingFinSucc n ι) e).fst
hj : j ≠ 0
⊢ (((Equiv.embeddingFinSucc n ι) e).fst.toEquivRange.symm ⟨e j, h'k⟩).succ = e.toEquivRange.symm ⟨e j, ⋯⟩
tactic: have hj : j ≠ 0 := by
    rintro rfl
    simp at h'k
state_before: case intro
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι✝ : Type u_2
E : ι✝ → Type u_3
inst✝³ : (i : ι✝) → NormedAddCommGroup (E i)
inst✝² : (i : ι✝) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι✝
f : ContinuousMultilinearMap 𝕜 E F
n✝ : ℕ∞
x : (i : ι✝) → E i
ι : Type u_4
inst✝ : DecidableEq ι
n : ℕ
e : Fin (n + 1) ↪ ι
j : Fin (n + 1)
h'k : e j ∈ Set.range ⇑((Equiv.embeddingFinSucc n ι) e).fst
hj : j ≠ 0
⊢ (((Equiv.embeddingFinSucc n ι) e).fst.toEquivRange.symm ⟨e j, h'k⟩).succ = e.toEquivRange.symm ⟨e j, ⋯⟩
state_after: case intro
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι✝ : Type u_2
E : ι✝ → Type u_3
inst✝³ : (i : ι✝) → NormedAddCommGroup (E i)
inst✝² : (i : ι✝) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι✝
f : ContinuousMultilinearMap 𝕜 E F
n✝ : ℕ∞
x : (i : ι✝) → E i
ι : Type u_4
inst✝ : DecidableEq ι
n : ℕ
e : Fin (n + 1) ↪ ι
j : Fin (n + 1)
h'k : e j ∈ Set.range ⇑((Equiv.embeddingFinSucc n ι) e).fst
hj : j ≠ 0
⊢ (((Equiv.embeddingFinSucc n ι) e).fst.toEquivRange.symm ⟨e j, h'k⟩).succ = j
tactic: simp only [Function.Embedding.toEquivRange_symm_apply_self]
state_before: case intro
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι✝ : Type u_2
E : ι✝ → Type u_3
inst✝³ : (i : ι✝) → NormedAddCommGroup (E i)
inst✝² : (i : ι✝) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι✝
f : ContinuousMultilinearMap 𝕜 E F
n✝ : ℕ∞
x : (i : ι✝) → E i
ι : Type u_4
inst✝ : DecidableEq ι
n : ℕ
e : Fin (n + 1) ↪ ι
j : Fin (n + 1)
h'k : e j ∈ Set.range ⇑((Equiv.embeddingFinSucc n ι) e).fst
hj : j ≠ 0
⊢ (((Equiv.embeddingFinSucc n ι) e).fst.toEquivRange.symm ⟨e j, h'k⟩).succ = j
state_after: case intro
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι✝ : Type u_2
E : ι✝ → Type u_3
inst✝³ : (i : ι✝) → NormedAddCommGroup (E i)
inst✝² : (i : ι✝) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι✝
f : ContinuousMultilinearMap 𝕜 E F
n✝ : ℕ∞
x : (i : ι✝) → E i
ι : Type u_4
inst✝ : DecidableEq ι
n : ℕ
e : Fin (n + 1) ↪ ι
j : Fin (n + 1)
h'k : e j ∈ Set.range ⇑((Equiv.embeddingFinSucc n ι) e).fst
hj : j ≠ 0
this : e j = ((Equiv.embeddingFinSucc n ι) e).fst (j.pred hj)
⊢ (((Equiv.embeddingFinSucc n ι) e).fst.toEquivRange.symm ⟨e j, h'k⟩).succ = j
tactic: have : e j = (Equiv.embeddingFinSucc n ι e).1 (Fin.pred j hj) := by simp
state_before: case intro
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι✝ : Type u_2
E : ι✝ → Type u_3
inst✝³ : (i : ι✝) → NormedAddCommGroup (E i)
inst✝² : (i : ι✝) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι✝
f : ContinuousMultilinearMap 𝕜 E F
n✝ : ℕ∞
x : (i : ι✝) → E i
ι : Type u_4
inst✝ : DecidableEq ι
n : ℕ
e : Fin (n + 1) ↪ ι
j : Fin (n + 1)
h'k : e j ∈ Set.range ⇑((Equiv.embeddingFinSucc n ι) e).fst
hj : j ≠ 0
this : e j = ((Equiv.embeddingFinSucc n ι) e).fst (j.pred hj)
⊢ (((Equiv.embeddingFinSucc n ι) e).fst.toEquivRange.symm ⟨e j, h'k⟩).succ = j
state_after: case intro
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι✝ : Type u_2
E : ι✝ → Type u_3
inst✝³ : (i : ι✝) → NormedAddCommGroup (E i)
inst✝² : (i : ι✝) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι✝
f : ContinuousMultilinearMap 𝕜 E F
n✝ : ℕ∞
x : (i : ι✝) → E i
ι : Type u_4
inst✝ : DecidableEq ι
n : ℕ
e : Fin (n + 1) ↪ ι
j : Fin (n + 1)
h'k : e j ∈ Set.range ⇑((Equiv.embeddingFinSucc n ι) e).fst
hj : j ≠ 0
this : e j = ((Equiv.embeddingFinSucc n ι) e).fst (j.pred hj)
⊢ (((Equiv.embeddingFinSucc n ι) e).fst.toEquivRange.symm ⟨((Equiv.embeddingFinSucc n ι) e).fst (j.pred hj), ⋯⟩).succ =
    j
tactic: simp_rw [this]
state_before: case intro
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι✝ : Type u_2
E : ι✝ → Type u_3
inst✝³ : (i : ι✝) → NormedAddCommGroup (E i)
inst✝² : (i : ι✝) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι✝
f : ContinuousMultilinearMap 𝕜 E F
n✝ : ℕ∞
x : (i : ι✝) → E i
ι : Type u_4
inst✝ : DecidableEq ι
n : ℕ
e : Fin (n + 1) ↪ ι
j : Fin (n + 1)
h'k : e j ∈ Set.range ⇑((Equiv.embeddingFinSucc n ι) e).fst
hj : j ≠ 0
this : e j = ((Equiv.embeddingFinSucc n ι) e).fst (j.pred hj)
⊢ (((Equiv.embeddingFinSucc n ι) e).fst.toEquivRange.symm ⟨((Equiv.embeddingFinSucc n ι) e).fst (j.pred hj), ⋯⟩).succ =
    j
state_after: no goals
tactic: simp [-Equiv.embeddingFinSucc_fst]