File: Mathlib/Analysis/InnerProductSpace/Rayleigh.lean

full_name: «_aux_Mathlib_Analysis_InnerProductSpace_Rayleigh___macroRules_term⟪_,_⟫_1»
code: local notation "⟪" x ", " y "⟫" => @inner 𝕜 _ _ x y
goal: Lean.Macro

full_name: ContinuousLinearMap.rayleighQuotient
code: /-- The *Rayleigh quotient* of a continuous linear map `T` (over `ℝ` or `ℂ`) at a vector `x` is
the quantity `re ⟪T x, x⟫ / ‖x‖ ^ 2`. -/
noncomputable abbrev rayleighQuotient (x : E) 
goal: ℝ

full_name: ContinuousLinearMap.rayleigh_smul
code: theorem rayleigh_smul (x : E) {c : 𝕜} (hc : c ≠ 0) :
    rayleighQuotient T (c • x) = rayleighQuotient T x 
goal: T.rayleighQuotient (c • x) = T.rayleighQuotient x

full_name: ContinuousLinearMap.image_rayleigh_eq_image_rayleigh_sphere
code: theorem image_rayleigh_eq_image_rayleigh_sphere {r : ℝ} (hr : 0 < r) :
    rayleighQuotient T '' {0}ᶜ = rayleighQuotient T '' sphere 0 r 
goal: T.rayleighQuotient '' {0}ᶜ = T.rayleighQuotient '' Metric.sphere 0 r

full_name: ContinuousLinearMap.iSup_rayleigh_eq_iSup_rayleigh_sphere
code: theorem iSup_rayleigh_eq_iSup_rayleigh_sphere {r : ℝ} (hr : 0 < r) :
    ⨆ x : { x : E // x ≠ 0 }, rayleighQuotient T x =
      ⨆ x : sphere (0 : E) r, rayleighQuotient T x 
goal: ⨆ x, T.rayleighQuotient ↑x = ⨆ x, T.rayleighQuotient ↑x

full_name: ContinuousLinearMap.iInf_rayleigh_eq_iInf_rayleigh_sphere
code: theorem iInf_rayleigh_eq_iInf_rayleigh_sphere {r : ℝ} (hr : 0 < r) :
    ⨅ x : { x : E // x ≠ 0 }, rayleighQuotient T x =
      ⨅ x : sphere (0 : E) r, rayleighQuotient T x 
goal: ⨅ x, T.rayleighQuotient ↑x = ⨅ x, T.rayleighQuotient ↑x

full_name: LinearMap.IsSymmetric.hasStrictFDerivAt_reApplyInnerSelf
code: theorem _root_.LinearMap.IsSymmetric.hasStrictFDerivAt_reApplyInnerSelf {T : F →L[ℝ] F}
    (hT : (T : F →ₗ[ℝ] F).IsSymmetric) (x₀ : F) :
    HasStrictFDerivAt T.reApplyInnerSelf (2 • (innerSL ℝ (T x₀))) x₀ 
goal: HasStrictFDerivAt T.reApplyInnerSelf (2 • (innerSL ℝ) (T x₀)) x₀

full_name: IsSelfAdjoint.linearly_dependent_of_isLocalExtrOn
code: theorem linearly_dependent_of_isLocalExtrOn (hT : IsSelfAdjoint T) {x₀ : F}
    (hextr : IsLocalExtrOn T.reApplyInnerSelf (sphere (0 : F) ‖x₀‖) x₀) :
    ∃ a b : ℝ, (a, b) ≠ 0 ∧ a • x₀ + b • T x₀ = 0 
goal: ∃ a b, (a, b) ≠ 0 ∧ a • x₀ + b • T x₀ = 0

full_name: IsSelfAdjoint.eq_smul_self_of_isLocalExtrOn_real
code: theorem eq_smul_self_of_isLocalExtrOn_real (hT : IsSelfAdjoint T) {x₀ : F}
    (hextr : IsLocalExtrOn T.reApplyInnerSelf (sphere (0 : F) ‖x₀‖) x₀) :
    T x₀ = T.rayleighQuotient x₀ • x₀ 
goal: T x₀ = T.rayleighQuotient x₀ • x₀

full_name: IsSelfAdjoint.eq_smul_self_of_isLocalExtrOn
code: theorem eq_smul_self_of_isLocalExtrOn (hT : IsSelfAdjoint T) {x₀ : E}
    (hextr : IsLocalExtrOn T.reApplyInnerSelf (sphere (0 : E) ‖x₀‖) x₀) :
    T x₀ = (↑(T.rayleighQuotient x₀) : 𝕜) • x₀ 
goal: T x₀ = ↑(T.rayleighQuotient x₀) • x₀

full_name: IsSelfAdjoint.hasEigenvector_of_isLocalExtrOn
code: /-- For a self-adjoint operator `T`, a local extremum of the Rayleigh quotient of `T` on a sphere
centred at the origin is an eigenvector of `T`. -/
theorem hasEigenvector_of_isLocalExtrOn (hT : IsSelfAdjoint T) {x₀ : E} (hx₀ : x₀ ≠ 0)
    (hextr : IsLocalExtrOn T.reApplyInnerSelf (sphere (0 : E) ‖x₀‖) x₀) :
    HasEigenvector (T : E →ₗ[𝕜] E) (↑(T.rayleighQuotient x₀)) x₀ 
goal: Module.End.HasEigenvector (↑T) (↑(T.rayleighQuotient x₀)) x₀

full_name: IsSelfAdjoint.hasEigenvector_of_isMaxOn
code: /-- For a self-adjoint operator `T`, a maximum of the Rayleigh quotient of `T` on a sphere centred
at the origin is an eigenvector of `T`, with eigenvalue the global supremum of the Rayleigh
quotient. -/
theorem hasEigenvector_of_isMaxOn (hT : IsSelfAdjoint T) {x₀ : E} (hx₀ : x₀ ≠ 0)
    (hextr : IsMaxOn T.reApplyInnerSelf (sphere (0 : E) ‖x₀‖) x₀) :
    HasEigenvector (T : E →ₗ[𝕜] E) (↑(⨆ x : { x : E // x ≠ 0 }, T.rayleighQuotient x)) x₀ 
goal: Module.End.HasEigenvector (↑T) (↑(⨆ x, T.rayleighQuotient ↑x)) x₀

full_name: IsSelfAdjoint.hasEigenvector_of_isMinOn
code: /-- For a self-adjoint operator `T`, a minimum of the Rayleigh quotient of `T` on a sphere centred
at the origin is an eigenvector of `T`, with eigenvalue the global infimum of the Rayleigh
quotient. -/
theorem hasEigenvector_of_isMinOn (hT : IsSelfAdjoint T) {x₀ : E} (hx₀ : x₀ ≠ 0)
    (hextr : IsMinOn T.reApplyInnerSelf (sphere (0 : E) ‖x₀‖) x₀) :
    HasEigenvector (T : E →ₗ[𝕜] E) (↑(⨅ x : { x : E // x ≠ 0 }, T.rayleighQuotient x)) x₀ 
goal: Module.End.HasEigenvector (↑T) (↑(⨅ x, T.rayleighQuotient ↑x)) x₀

full_name: LinearMap.IsSymmetric.hasEigenvalue_iSup_of_finiteDimensional
code: /-- The supremum of the Rayleigh quotient of a symmetric operator `T` on a nontrivial
finite-dimensional vector space is an eigenvalue for that operator. -/
theorem hasEigenvalue_iSup_of_finiteDimensional (hT : T.IsSymmetric) :
    HasEigenvalue T ↑(⨆ x : { x : E // x ≠ 0 }, RCLike.re ⟪T x, x⟫ / ‖(x : E)‖ ^ 2 : ℝ) 
goal: Module.End.HasEigenvalue T ↑(⨆ x, RCLike.re ⟪T ↑x, ↑x⟫_𝕜 / ‖↑x‖ ^ 2)

full_name: LinearMap.IsSymmetric.hasEigenvalue_iInf_of_finiteDimensional
code: /-- The infimum of the Rayleigh quotient of a symmetric operator `T` on a nontrivial
finite-dimensional vector space is an eigenvalue for that operator. -/
theorem hasEigenvalue_iInf_of_finiteDimensional (hT : T.IsSymmetric) :
    HasEigenvalue T ↑(⨅ x : { x : E // x ≠ 0 }, RCLike.re ⟪T x, x⟫ / ‖(x : E)‖ ^ 2 : ℝ) 
goal: Module.End.HasEigenvalue T ↑(⨅ x, RCLike.re ⟪T ↑x, ↑x⟫_𝕜 / ‖↑x‖ ^ 2)

full_name: LinearMap.IsSymmetric.subsingleton_of_no_eigenvalue_finiteDimensional
code: theorem subsingleton_of_no_eigenvalue_finiteDimensional (hT : T.IsSymmetric)
    (hT' : ∀ μ : 𝕜, Module.End.eigenspace (T : E →ₗ[𝕜] E) μ = ⊥) : Subsingleton E 
goal: Subsingleton E