Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions Mathlib/Analysis/InnerProductSpace/Spectrum.lean
Original file line number Diff line number Diff line change
Expand Up @@ -407,22 +407,22 @@ theorem inner_product_apply_eigenvector {μ : 𝕜} {v : E} {T : E →ₗ[𝕜]
simp only [h, inner_smul_right, inner_self_eq_norm_sq_to_K]

theorem eigenvalue_nonneg_of_nonneg {μ : ℝ} {T : E →ₗ[𝕜] E} (hμ : HasEigenvalue T μ)
(hnn : ∀ x : E, 0 ≤ RCLike.re ⟪x, T x⟫) : 0 ≤ μ := by
(hnn : ∀ x, 0 ≤ RCLike.re ⟪x, T x⟫) : 0 ≤ μ := by
obtain ⟨v, hv₁, hv₂⟩ := hμ.exists_hasEigenvector
have hpos : (0 : ℝ) < ‖v‖ ^ 2 := by simpa only [sq_pos_iff, norm_ne_zero_iff] using hv₂
have hpos : 0 < ‖v‖ ^ 2 := by simpa only [sq_pos_iff, norm_ne_zero_iff] using hv₂
simp only [mem_genEigenspace_one] at hv₁
have : RCLike.re ⟪v, T v⟫ = μ * ‖v‖ ^ 2 :=
mod_cast congr_arg RCLike.re (inner_product_apply_eigenvector hv₁)
exact (mul_nonneg_iff_of_pos_right hpos).mp (this ▸ hnn v)

theorem eigenvalue_pos_of_pos {μ : ℝ} {T : E →ₗ[𝕜] E} (hμ : HasEigenvalue T μ)
(hnn : ∀ x : E, 0 < RCLike.re ⟪x, T x⟫) : 0 < μ := by
(hnn : ∀ x, x ≠ 0 → 0 < RCLike.re ⟪x, T x⟫) : 0 < μ := by
obtain ⟨v, hv₁, hv₂⟩ := hμ.exists_hasEigenvector
have hpos : (0 : ℝ) < ‖v‖ ^ 2 := by simpa only [sq_pos_iff, norm_ne_zero_iff] using hv₂
have hpos : 0 < ‖v‖ ^ 2 := by simpa only [sq_pos_iff, norm_ne_zero_iff] using hv₂
simp only [mem_genEigenspace_one] at hv₁
have : RCLike.re ⟪v, T v⟫ = μ * ‖v‖ ^ 2 :=
mod_cast congr_arg RCLike.re (inner_product_apply_eigenvector hv₁)
exact (mul_pos_iff_of_pos_right hpos).mp (this ▸ hnn v)
exact (mul_pos_iff_of_pos_right hpos).mp (this ▸ hnn v hv₂)

end Nonneg

Expand Down
Loading