Theorem: inner_map_self_eq_zero
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: constructor
state_before: 𝕜 : Type ?u.2752580
E : Type ?u.2752583
F : Type ?u.2752586
inst✝⁶ : IsROrC 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace ℝ F
dec_E : DecidableEq E
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℂ V
T : V →ₗ[ℂ] V
⊢ (∀ (x : V), inner (↑T x) x = 0) ↔ T = 0

tactic: intro hT
state_before: case mp
𝕜 : Type ?u.2752580
E : Type ?u.2752583
F : Type ?u.2752586
inst✝⁶ : IsROrC 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace ℝ F
dec_E : DecidableEq E
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℂ V
T : V →ₗ[ℂ] V
⊢ (∀ (x : V), inner (↑T x) x = 0) → T = 0

tactic: ext x
state_before: case mp
𝕜 : Type ?u.2752580
E : Type ?u.2752583
F : Type ?u.2752586
inst✝⁶ : IsROrC 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace ℝ F
dec_E : DecidableEq E
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℂ V
T : V →ₗ[ℂ] V
hT : ∀ (x : V), inner (↑T x) x = 0
⊢ T = 0

tactic: simp only [LinearMap.zero_apply, ← @inner_self_eq_zero ℂ V]
state_before: case mp.h
𝕜 : Type ?u.2752580
E : Type ?u.2752583
F : Type ?u.2752586
inst✝⁶ : IsROrC 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace ℝ F
dec_E : DecidableEq E
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℂ V
T : V →ₗ[ℂ] V
hT : ∀ (x : V), inner (↑T x) x = 0
x : V
⊢ ↑T x = ↑0 x

tactic: simp (config := {singlePass := true}) only [inner_map_polarization]
state_before: case mp.h
𝕜 : Type ?u.2752580
E : Type ?u.2752583
F : Type ?u.2752586
inst✝⁶ : IsROrC 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace ℝ F
dec_E : DecidableEq E
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℂ V
T : V →ₗ[ℂ] V
hT : ∀ (x : V), inner (↑T x) x = 0
x : V
⊢ inner (↑T x) (↑T x) = 0

tactic: simp only [hT]
state_before: case mp.h
𝕜 : Type ?u.2752580
E : Type ?u.2752583
F : Type ?u.2752586
inst✝⁶ : IsROrC 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace ℝ F
dec_E : DecidableEq E
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℂ V
T : V →ₗ[ℂ] V
hT : ∀ (x : V), inner (↑T x) x = 0
x : V
⊢ (inner (↑T (↑T x + x)) (↑T x + x) - inner (↑T (↑T x - x)) (↑T x - x) +
          Complex.I * inner (↑T (↑T x + Complex.I • x)) (↑T x + Complex.I • x) -
        Complex.I * inner (↑T (↑T x - Complex.I • x)) (↑T x - Complex.I • x)) /
      4 =
    0

tactic: norm_num
state_before: case mp.h
𝕜 : Type ?u.2752580
E : Type ?u.2752583
F : Type ?u.2752586
inst✝⁶ : IsROrC 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace ℝ F
dec_E : DecidableEq E
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℂ V
T : V →ₗ[ℂ] V
hT : ∀ (x : V), inner (↑T x) x = 0
x : V
⊢ (0 - 0 + Complex.I * 0 - Complex.I * 0) / 4 = 0

tactic: rintro rfl x
state_before: case mpr
𝕜 : Type ?u.2752580
E : Type ?u.2752583
F : Type ?u.2752586
inst✝⁶ : IsROrC 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace ℝ F
dec_E : DecidableEq E
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℂ V
T : V →ₗ[ℂ] V
⊢ T = 0 → ∀ (x : V), inner (↑T x) x = 0

tactic: simp only [LinearMap.zero_apply, inner_zero_left]
state_before: case mpr
𝕜 : Type ?u.2752580
E : Type ?u.2752583
F : Type ?u.2752586
inst✝⁶ : IsROrC 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace ℝ F
dec_E : DecidableEq E
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℂ V
x : V
⊢ inner (↑0 x) x = 0