Theorem: PiTensorProduct.mapL_add_smul_aux
File: Mathlib/Analysis/NormedSpace/PiTensorProduct/InjectiveSeminorm.lean

tactic: symm
state_before: ι : Type uι
inst✝¹⁰ : Fintype ι
𝕜 : Type u𝕜
inst✝⁹ : NontriviallyNormedField 𝕜
E : ι → Type uE
inst✝⁸ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁷ : (i : ι) → NormedSpace 𝕜 (E i)
F : Type uF
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NormedSpace 𝕜 F
E' : ι → Type u_1
E'' : ι → Type u_2
inst✝⁴ : (i : ι) → SeminormedAddCommGroup (E' i)
inst✝³ : (i : ι) → NormedSpace 𝕜 (E' i)
inst✝² : (i : ι) → SeminormedAddCommGroup (E'' i)
inst✝¹ : (i : ι) → NormedSpace 𝕜 (E'' i)
g : (i : ι) → E' i →L[𝕜] E'' i
f : (i : ι) → E i →L[𝕜] E' i
inst✝ : DecidableEq ι
i : ι
u : E i →L[𝕜] E' i
⊢ (fun j => ↑(update f i u j)) = update (fun j => ↑(f j)) i ↑u
state_after: ι : Type uι
inst✝¹⁰ : Fintype ι
𝕜 : Type u𝕜
inst✝⁹ : NontriviallyNormedField 𝕜
E : ι → Type uE
inst✝⁸ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁷ : (i : ι) → NormedSpace 𝕜 (E i)
F : Type uF
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NormedSpace 𝕜 F
E' : ι → Type u_1
E'' : ι → Type u_2
inst✝⁴ : (i : ι) → SeminormedAddCommGroup (E' i)
inst✝³ : (i : ι) → NormedSpace 𝕜 (E' i)
inst✝² : (i : ι) → SeminormedAddCommGroup (E'' i)
inst✝¹ : (i : ι) → NormedSpace 𝕜 (E'' i)
g : (i : ι) → E' i →L[𝕜] E'' i
f : (i : ι) → E i →L[𝕜] E' i
inst✝ : DecidableEq ι
i : ι
u : E i →L[𝕜] E' i
⊢ update (fun j => ↑(f j)) i ↑u = fun j => ↑(update f i u j)

tactic: rw [update_eq_iff]
state_before: ι : Type uι
inst✝¹⁰ : Fintype ι
𝕜 : Type u𝕜
inst✝⁹ : NontriviallyNormedField 𝕜
E : ι → Type uE
inst✝⁸ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁷ : (i : ι) → NormedSpace 𝕜 (E i)
F : Type uF
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NormedSpace 𝕜 F
E' : ι → Type u_1
E'' : ι → Type u_2
inst✝⁴ : (i : ι) → SeminormedAddCommGroup (E' i)
inst✝³ : (i : ι) → NormedSpace 𝕜 (E' i)
inst✝² : (i : ι) → SeminormedAddCommGroup (E'' i)
inst✝¹ : (i : ι) → NormedSpace 𝕜 (E'' i)
g : (i : ι) → E' i →L[𝕜] E'' i
f : (i : ι) → E i →L[𝕜] E' i
inst✝ : DecidableEq ι
i : ι
u : E i →L[𝕜] E' i
⊢ update (fun j => ↑(f j)) i ↑u = fun j => ↑(update f i u j)
state_after: ι : Type uι
inst✝¹⁰ : Fintype ι
𝕜 : Type u𝕜
inst✝⁹ : NontriviallyNormedField 𝕜
E : ι → Type uE
inst✝⁸ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁷ : (i : ι) → NormedSpace 𝕜 (E i)
F : Type uF
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NormedSpace 𝕜 F
E' : ι → Type u_1
E'' : ι → Type u_2
inst✝⁴ : (i : ι) → SeminormedAddCommGroup (E' i)
inst✝³ : (i : ι) → NormedSpace 𝕜 (E' i)
inst✝² : (i : ι) → SeminormedAddCommGroup (E'' i)
inst✝¹ : (i : ι) → NormedSpace 𝕜 (E'' i)
g : (i : ι) → E' i →L[𝕜] E'' i
f : (i : ι) → E i →L[𝕜] E' i
inst✝ : DecidableEq ι
i : ι
u : E i →L[𝕜] E' i
⊢ ↑u = ↑(update f i u i) ∧ ∀ (x : ι), x ≠ i → ↑(f x) = ↑(update f i u x)

tactic: constructor
state_before: ι : Type uι
inst✝¹⁰ : Fintype ι
𝕜 : Type u𝕜
inst✝⁹ : NontriviallyNormedField 𝕜
E : ι → Type uE
inst✝⁸ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁷ : (i : ι) → NormedSpace 𝕜 (E i)
F : Type uF
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NormedSpace 𝕜 F
E' : ι → Type u_1
E'' : ι → Type u_2
inst✝⁴ : (i : ι) → SeminormedAddCommGroup (E' i)
inst✝³ : (i : ι) → NormedSpace 𝕜 (E' i)
inst✝² : (i : ι) → SeminormedAddCommGroup (E'' i)
inst✝¹ : (i : ι) → NormedSpace 𝕜 (E'' i)
g : (i : ι) → E' i →L[𝕜] E'' i
f : (i : ι) → E i →L[𝕜] E' i
inst✝ : DecidableEq ι
i : ι
u : E i →L[𝕜] E' i
⊢ ↑u = ↑(update f i u i) ∧ ∀ (x : ι), x ≠ i → ↑(f x) = ↑(update f i u x)
state_after: case left
ι : Type uι
inst✝¹⁰ : Fintype ι
𝕜 : Type u𝕜
inst✝⁹ : NontriviallyNormedField 𝕜
E : ι → Type uE
inst✝⁸ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁷ : (i : ι) → NormedSpace 𝕜 (E i)
F : Type uF
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NormedSpace 𝕜 F
E' : ι → Type u_1
E'' : ι → Type u_2
inst✝⁴ : (i : ι) → SeminormedAddCommGroup (E' i)
inst✝³ : (i : ι) → NormedSpace 𝕜 (E' i)
inst✝² : (i : ι) → SeminormedAddCommGroup (E'' i)
inst✝¹ : (i : ι) → NormedSpace 𝕜 (E'' i)
g : (i : ι) → E' i →L[𝕜] E'' i
f : (i : ι) → E i →L[𝕜] E' i
inst✝ : DecidableEq ι
i : ι
u : E i →L[𝕜] E' i
⊢ ↑u = ↑(update f i u i)

case right
ι : Type uι
inst✝¹⁰ : Fintype ι
𝕜 : Type u𝕜
inst✝⁹ : NontriviallyNormedField 𝕜
E : ι → Type uE
inst✝⁸ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁷ : (i : ι) → NormedSpace 𝕜 (E i)
F : Type uF
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NormedSpace 𝕜 F
E' : ι → Type u_1
E'' : ι → Type u_2
inst✝⁴ : (i : ι) → SeminormedAddCommGroup (E' i)
inst✝³ : (i : ι) → NormedSpace 𝕜 (E' i)
inst✝² : (i : ι) → SeminormedAddCommGroup (E'' i)
inst✝¹ : (i : ι) → NormedSpace 𝕜 (E'' i)
g : (i : ι) → E' i →L[𝕜] E'' i
f : (i : ι) → E i →L[𝕜] E' i
inst✝ : DecidableEq ι
i : ι
u : E i →L[𝕜] E' i
⊢ ∀ (x : ι), x ≠ i → ↑(f x) = ↑(update f i u x)

tactic: simp only [update_same]
state_before: case left
ι : Type uι
inst✝¹⁰ : Fintype ι
𝕜 : Type u𝕜
inst✝⁹ : NontriviallyNormedField 𝕜
E : ι → Type uE
inst✝⁸ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁷ : (i : ι) → NormedSpace 𝕜 (E i)
F : Type uF
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NormedSpace 𝕜 F
E' : ι → Type u_1
E'' : ι → Type u_2
inst✝⁴ : (i : ι) → SeminormedAddCommGroup (E' i)
inst✝³ : (i : ι) → NormedSpace 𝕜 (E' i)
inst✝² : (i : ι) → SeminormedAddCommGroup (E'' i)
inst✝¹ : (i : ι) → NormedSpace 𝕜 (E'' i)
g : (i : ι) → E' i →L[𝕜] E'' i
f : (i : ι) → E i →L[𝕜] E' i
inst✝ : DecidableEq ι
i : ι
u : E i →L[𝕜] E' i
⊢ ↑u = ↑(update f i u i)
state_after: no goals

tactic: exact fun _ h ↦ by simp only [ne_eq, h, not_false_eq_true, update_noteq]
state_before: case right
ι : Type uι
inst✝¹⁰ : Fintype ι
𝕜 : Type u𝕜
inst✝⁹ : NontriviallyNormedField 𝕜
E : ι → Type uE
inst✝⁸ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁷ : (i : ι) → NormedSpace 𝕜 (E i)
F : Type uF
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NormedSpace 𝕜 F
E' : ι → Type u_1
E'' : ι → Type u_2
inst✝⁴ : (i : ι) → SeminormedAddCommGroup (E' i)
inst✝³ : (i : ι) → NormedSpace 𝕜 (E' i)
inst✝² : (i : ι) → SeminormedAddCommGroup (E'' i)
inst✝¹ : (i : ι) → NormedSpace 𝕜 (E'' i)
g : (i : ι) → E' i →L[𝕜] E'' i
f : (i : ι) → E i →L[𝕜] E' i
inst✝ : DecidableEq ι
i : ι
u : E i →L[𝕜] E' i
⊢ ∀ (x : ι), x ≠ i → ↑(f x) = ↑(update f i u x)
state_after: no goals

tactic: simp only [ne_eq, h, not_false_eq_true, update_noteq]
state_before: ι : Type uι
inst✝¹⁰ : Fintype ι
𝕜 : Type u𝕜
inst✝⁹ : NontriviallyNormedField 𝕜
E : ι → Type uE
inst✝⁸ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁷ : (i : ι) → NormedSpace 𝕜 (E i)
F : Type uF
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NormedSpace 𝕜 F
E' : ι → Type u_1
E'' : ι → Type u_2
inst✝⁴ : (i : ι) → SeminormedAddCommGroup (E' i)
inst✝³ : (i : ι) → NormedSpace 𝕜 (E' i)
inst✝² : (i : ι) → SeminormedAddCommGroup (E'' i)
inst✝¹ : (i : ι) → NormedSpace 𝕜 (E'' i)
g : (i : ι) → E' i →L[𝕜] E'' i
f : (i : ι) → E i →L[𝕜] E' i
inst✝ : DecidableEq ι
i : ι
u : E i →L[𝕜] E' i
x✝ : ι
h : x✝ ≠ i
⊢ ↑(f x✝) = ↑(update f i u x✝)
state_after: no goals